|
主题 : : 时钟程序,各分隔符后多了个空格,请问如何解决 [待解决] |
回复[ 1次 ]
点击[ 620次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2008-09-12 11:58 ]
[引用]
[回复]
[ top ] | |
荣誉值:18
信誉值:0
注册日期:2008-08-31 11:07 |
代码如下,显示出来为08/ 09/ 12 11: 56: 47
(想去掉冒号正斜后的空格,各位帮我看看)
assume cs:code
data segment
db 9, '/', 8, '/', 7, ' ', 4, ':', 2, ':', 0
data ends
code segment
start: mov ax, data
mov ds, ax
mov si, 0
mov ax, 0b800h
mov es, ax
mov cx, 11
mov di, 0
s: push cx
cmp byte ptr [si], 9
mov ah, [si]
ja s0
mov al, [si]
out 70h, al
in al, 71h
mov ah, al
mov cl, 4
shr ah, cl
and al, 00001111b
add ax, 3030h
mov byte ptr es:[160*12+40*2+2+di], al
s0: mov byte ptr es:[160*12+40*2+di], ah
add si, 1
add di, 4 ;我这里两种情况都被我加了4
pop cx
loop s
mov ax, 4c00h
int 21h
code ends
end start | | |
|
|
|
|
[第1楼]
[ 回复时间:2008-09-12 12:41 ]
[引用]
[回复]
[ top ] | |
荣誉值:18
信誉值:0
注册日期:2008-08-31 11:07 |
吃完饭,自己解决了,代码如下:
assume cs:code
data segment
db 9, '/', 8, '/', 7, ' ', 4, ':', 2, ':', 0
data ends
code segment
start: mov ax, data
mov ds, ax
mov si, 0
mov ax, 0b800h
mov es, ax
mov cx, 11
mov di, 0
s: push cx
cmp byte ptr [si], 9
mov al, [si]
ja s0
mov al, [si]
out 70h, al
in al, 71h
mov ah, al
mov cl, 4
shr ah, cl
and al, 00001111b
add ax, 3030h
mov byte ptr es:[160*12+40*2+di], ah
add di, 2
s0: mov byte ptr es:[160*12+40*2+di], al
add si, 1
add di, 2
pop cx
loop s
mov ax, 4c00h
int 21h
code ends
end start | | |
|