[英]numerical base conversion on Intel 8086
我正在研究数字基本转换程序,我在代码的一部分偶然发现了一个问题:
mov ax,36864
mov bx,ax
mov dx,0
sub bx,4096
jns ustawGr
mov al,48
int 29h
jmp konwerter16
它适用于高达36863的数字,但由于某种原因它不会进入ustawGr
并为任何更高的数字打印0
,即使寄存器应该能够包含它。
36864 - 4096
是0x9000 - 0x1000 == 0x8000
。 在二进制补码表示中, 0x8000
是最大的负16位数( -32768
)。 由于该值为负,因此不会采用您的jns
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.