新出炉 实验14 部分语句求教!~
assume cs:codedata 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:31 编辑
擦了个擦15章接着就讲到了 ...... in al,60h是 键盘的外中断寄存器端口 cmp al,10h Q键的扫描码!~~~
页:
[1]