鱼C论坛

 找回密码
 立即注册
查看: 2236|回复: 1

[争议讨论] 新出炉 实验14 部分语句求教!~

[复制链接]
发表于 2012-3-2 08:43:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
assume cs:code
data segment   ;2F │/   │     │3A  │:   │  │20      │空格 |        ASCII 码
  db 09,'/',08,'/',07,' ',04,':',02,':',00
  data ends  
code segment
    start:  mov ax,data   ;将用到的端口号码和符号依次放入内存 以备调用
   mov ds,ax
   mov bx,0b800h  ;设定显示
   mov es,bx
   mov si,0
   mov bx,0
   mov cx,11  ;设定循环次数 依次将端口号码符号进入
  s: push cx
   mov al,[si]

   cmp  al,2fh
   je s0
   cmp  al,3ah
   je s0
   cmp al,20h
   je s0             ;以上6句判断是否是符号 符号不参与端口调取

   out 70h,al
   in al,71h
   mov ah,al
   mov cl,4
   shr ah,cl
   and al,00001111b
   add ah,30h
   add al,30h                    ;端口读取  和 BCD码 转换

    mov byte ptr  es:[bx+160*12+2*30],ah   
   mov byte ptr  es:[bx+160*12+2*30+2],al                 ;按byte型取 显示相应日期时间
   jmp short s1               ;下面是符号显示的代码  显示日期时间的代码 需要跳过


   s0:mov byte ptr  es:[bx+160*12+2*30],al                ; 按byte型取 接上面 je 跳转符号插入日期与时间中间
    add bx,2   
   jmp short s2              ;因为这里符号只占1字节所以 bx+2(byte)
   s1:  add bx,4            ; 因为这里数据是 分开ah  al 各占1个字节 所以要bx+4(byte )
   s2: inc si
    pop cx
    loop s
   in al,60h
    cmp al,10h ;Q键的扫描码
   je quit
   jmp short start   
;这几句是让显示的时间动起来(网上找的答案上这么写的)  其实我现在也没明白  60h 端口是啥意思  cmp al,10h什么扫描码也不懂
quit: mov ax,4c00h    ;按Q键可以跳转到程序结束
   int 21h
   code ends
  end start
求教 mov al,60h  cmp al,10h 何意思?

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-3-2 09:30:15 | 显示全部楼层
本帖最后由 莫名其妙 于 2012-3-2 09:31 编辑

擦了个擦  15章接着就讲到了 ...... in al,60h  是 键盘的外中断寄存器端口    cmp al,10h Q键的扫描码!~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-4 19:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表