|

楼主 |
发表于 2012-12-22 21:48:15
|
显示全部楼层
wawa 发表于 2012-12-22 21:38
20~23行代码有误,数据段定义有误,你想把cmos地址放在数据段中应该表示为db 9,8,7,4,2,0,干嘛要用 ... - Assume cs:code
- data segment
- db '987420'
- data ends
- code segment
- start:
-
- mov ax,data
- mov ds,ax
- mov si,0
- mov ax,0b800h
- mov es,ax
- mov di,160*12+36*2
- mov bl,2
- mov cx,6
- sub ax,ax
- s: push cx
- mov al,[si]
- sub al,30h
- out 70h,al ;对CMOS RAM端口进行读写操作
- in al,71h
- mov ah,al
- mov cl,4
- shr ah,cl
- and al,00001111b
-
- add ah,30h ;将数字转换成字符
- add al,30h
-
- mov byte ptr es:[di],ah
- mov byte ptr es:[di+1],bl
- mov byte ptr es:[di+2],al
- mov byte ptr es:[di+3],bl
- inc si
- add di,4
-
- pop cx
- loop s
-
- ok: mov ax,4c00h
- int 21h
-
- code ends
- end start
-
复制代码 非常感谢兄弟的指点,确实是要减30h,我之前减过一次,没成功,可能就出在数据段定义中的豆号的原因。GODD,THKS.
贴出来跟大家分享一下下。呵呵
大牛勿喷
|
|