|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
assume cs:code
code segment
data1: db '??/??/?? ??:??:?? ', '$' ;数据段, 存放转换后的ASCII码
data2: db 9, 8, 7, 4, 2, 0, '$' ;单元段, 存放当前时间在cmos ram中存放的单元地址, 用于读取BCD码
start: mov ax, cs
mov ds, ax ;ds:[si]指向data段的数据段
mov si, offset data1
mov bx, offset data2 ;ds:[bx]指向data段的单元段
mov cx, 6
s1: push cx
mov al, ds:[bx]
out 70h, al
in al, 71h ;调用ascii子程序,功能为将BCD码转换成ASCII码,并存放在data段的数据
call ascii ;段内
inc bx
pop cx
loop s1
mov bh, 0
mov dh, 12 ;调用10H中断例程的2号子程序, 功能: 置光标, 参数:bh = 页号, dh = 行号, dl = 列号
mov dl, 22
mov ah, 2 ;ah = 子程序号
int 10h
mov dx, offset data1
mov ah, 9 ;调用21h中断例程的9号子程序, 功能: 显示字符串,知道遇到$号
int 21h ;参数: ds:dx 指向字符串首地址, ah = 子程序号
mov ah,1
int 21h
mov ax, 4c00h
int 21h
;子程序1
;功能:将al中的BCD码转换为ACSII码,并将转换后的数据存放在ds:[bx]指向的位置
;参数: al = BCD码
;返回: 无
ascii: push ax
push dx
mov ah, al
mov cl, 4
shr ah, cl
and al, 00001111b
add ah, 30h
add al, 30h
mov byte ptr ds:[si], ah
mov byte ptr ds:[si+1], al
add si, 3
pop dx
pop ax
ret
code ends
end start
http://www.asmedu.net/bbs/pasteinfo.jsp?part=1&level=book&kind=1015&qkSg=2&qID=68897&readSg=1
|
|