莫名其妙 发表于 2012-3-2 08:43:24

新出炉 实验14 部分语句求教!~

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,

   cmpal,2fh
   je s0
   cmpal,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 ptres:,ah   
   mov byte ptres:,al               ;按byte型取 显示相应日期时间
   jmp short s1               ;下面是符号显示的代码显示日期时间的代码 需要跳过


   s0:mov byte ptres:,al                ; 按byte型取 接上面 je 跳转符号插入日期与时间中间
    add bx,2   
   jmp short s2            ;因为这里符号只占1字节所以 bx+2(byte)
   s1:add bx,4            ; 因为这里数据是 分开ahal 各占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,60hcmp al,10h 何意思?

莫名其妙 发表于 2012-3-2 09:30:15

本帖最后由 莫名其妙 于 2012-3-2 09:31 编辑

擦了个擦15章接着就讲到了 ...... in al,60h是 键盘的外中断寄存器端口    cmp al,10h Q键的扫描码!~~~
页: [1]
查看完整版本: 新出炉 实验14 部分语句求教!~