晚安,
我正在尝试使用Assembly(FASM)做一个项目,在这里我需要做一些三角形,并放入0到15之间的2种颜色(使用程序向人问数字)
我得到这个来“读取”值:
mov ah, 40h
mov bx, 1
mov cx, 22
mov dx, color1msg
int 21h
mov ah, 3Fh
mov bx, 0
mov cx, 1
mov dx, color1
int 21h
mov ah, 3Fh
mov bx, 0
mov cx, 2
mov dx, crlf
int 21h
mov ah, 40h
mov bx, 1
mov cx, 1
mov dx, paragrafo
int 21h
mov ah, 40h
mov bx, 1
mov cx, 22
mov dx, color2msg
int 21h
mov ah, 3Fh
mov bx, 0
mov cx, 1
mov dx, color2
int 21h
mov ah, 3Fh
mov bx, 0
mov cx, 2
mov dx, crlf
int 21h
mov ah, 40h
mov bx, 1
mov cx, 1
mov dx, paragrafo
int 21h
sub [color1], 48
sub [color2], 48
color1msg db "Defina a cor 1 (0-9): " ;insert the color one 0-9
color2msg db "Defina a cor 2 (0-9): "
paragrafo db 10
crlf rb 2
color1 rb 2
color2 rb 2
但这只允许我从0到9进行阅读,有人可以帮助我将其从0到15放置吗?
您可以要求用户输入十六进制数字AF来代表颜色10-15。这对您的程序进行了最少的更改。
改变这个
sub [color1], 48
sub [color2], 48
进入
mov al,[color1]
cmp al,65
jbe tt1 ;0-9
sub al,7 ;A-F
tt1:
sub al,48
mov [color1],al
mov al,[color2]
cmp al,65
jbe tt2 ;0-9
sub al,7 ;A-F
tt2:
sub al,48
mov [color2],al
还可以通过更改提示让用户知道。
color1msg db "Defina a cor 1 (0-9 A-F): "
color2msg db "Defina a cor 2 (0-9 A-F): "
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句