Assembly 如何在emu8086中打印寄存器的内容?
您可以按原样显示AX,但会在屏幕上看到奇怪的字符。需要一个将二进制(AX)转换为字符串的过程。接下来的代码将一个数字放入AX,将AX转换为字符串,并显示该字符串。您可以在以后的程序中使用过程number2string。在EMU8086中复制粘贴下一个代码并运行:Assembly 如何在emu8086中打印寄存器的内容?,assembly,Assembly,您可以按原样显示AX,但会在屏幕上看到奇怪的字符。需要一个将二进制(AX)转换为字符串的过程。接下来的代码将一个数字放入AX,将AX转换为字符串,并显示该字符串。您可以在以后的程序中使用过程number2string。在EMU8086中复制粘贴下一个代码并运行: include 'emu8086.inc' #make_com# org 100h s1 dw 50,60,70,80,90,100,120,130,140,160,170,190,190,220,250,270,300
include 'emu8086.inc'
#make_com#
org 100h
s1 dw 50,60,70,80,90,100,120,130,140,160,170,190,190,220,250,270,300
MOV SI,0
MOV CX,16
s2:
MOV AX,s1[SI]
s3:
INC SI
CMP AX,100
JBE s4
JA s5
s4:
PRINTf AX
JMP s3
s5:
CMP AX,200
JB s6
JA s7
s6:
PRINTf AX
JMP s3
s7:
PRINTf AX
JMP s3
END
;printf AX doesn't work and i want to print the contents of AX
再解释一下:对于将来的程序,过程number2string需要在数据段中使用一个名为“str”的变量。正如您在代码中看到的,“str”的长度为6,因为AX可以容纳5位或更少的数字,如果您想显示它,字符串需要“$”符号,这就是长度为6的原因。number2string的参数必须放在AX上。当然,您可以更改变量名(str)和使用的寄存器(AX)。您可以按原样显示AX,但您会在屏幕上看到奇怪的字符。需要一个将二进制(AX)转换为字符串的过程。接下来的代码将一个数字放入AX,将AX转换为字符串,并显示该字符串。您可以在以后的程序中使用过程number2string。在EMU8086中复制粘贴下一个代码并运行:
include 'emu8086.inc'
#make_com#
org 100h
s1 dw 50,60,70,80,90,100,120,130,140,160,170,190,190,220,250,270,300
MOV SI,0
MOV CX,16
s2:
MOV AX,s1[SI]
s3:
INC SI
CMP AX,100
JBE s4
JA s5
s4:
PRINTf AX
JMP s3
s5:
CMP AX,200
JB s6
JA s7
s6:
PRINTf AX
JMP s3
s7:
PRINTf AX
JMP s3
END
;printf AX doesn't work and i want to print the contents of AX
再解释一下:对于将来的程序,过程number2string需要在数据段中使用一个名为“str”的变量。正如您在代码中看到的,“str”的长度为6,因为AX可以容纳5位或更少的数字,如果您想显示它,字符串需要“$”符号,这就是长度为6的原因。number2string的参数必须放在AX上。当然,您可以更改变量名(str)和使用的寄存器(AX)。您可以按原样显示AX,但您会在屏幕上看到奇怪的字符。需要一个将二进制(AX)转换为字符串的过程。接下来的代码将一个数字放入AX,将AX转换为字符串,并显示该字符串。您可以在以后的程序中使用过程number2string。在EMU8086中复制粘贴下一个代码并运行:
include 'emu8086.inc'
#make_com#
org 100h
s1 dw 50,60,70,80,90,100,120,130,140,160,170,190,190,220,250,270,300
MOV SI,0
MOV CX,16
s2:
MOV AX,s1[SI]
s3:
INC SI
CMP AX,100
JBE s4
JA s5
s4:
PRINTf AX
JMP s3
s5:
CMP AX,200
JB s6
JA s7
s6:
PRINTf AX
JMP s3
s7:
PRINTf AX
JMP s3
END
;printf AX doesn't work and i want to print the contents of AX
再解释一下:对于将来的程序,过程number2string需要在数据段中使用一个名为“str”的变量。正如您在代码中看到的,“str”的长度为6,因为AX可以容纳5位或更少的数字,如果您想显示它,字符串需要“$”符号,这就是长度为6的原因。number2string的参数必须放在AX上。当然,您可以更改变量名(str)和使用的寄存器(AX)。您可以按原样显示AX,但您会在屏幕上看到奇怪的字符。需要一个将二进制(AX)转换为字符串的过程。接下来的代码将一个数字放入AX,将AX转换为字符串,并显示该字符串。您可以在以后的程序中使用过程number2string。在EMU8086中复制粘贴下一个代码并运行:
include 'emu8086.inc'
#make_com#
org 100h
s1 dw 50,60,70,80,90,100,120,130,140,160,170,190,190,220,250,270,300
MOV SI,0
MOV CX,16
s2:
MOV AX,s1[SI]
s3:
INC SI
CMP AX,100
JBE s4
JA s5
s4:
PRINTf AX
JMP s3
s5:
CMP AX,200
JB s6
JA s7
s6:
PRINTf AX
JMP s3
s7:
PRINTf AX
JMP s3
END
;printf AX doesn't work and i want to print the contents of AX
再解释一下:对于将来的程序,过程number2string需要在数据段中使用一个名为“str”的变量。正如您在代码中看到的,“str”的长度为6,因为AX可以容纳5位或更少的数字,如果您想显示它,字符串需要“$”符号,这就是长度为6的原因。number2string的参数必须放在AX上。当然,您可以更改变量名(str)和使用的寄存器(AX)
);printf AX不工作,我想打印AX的内容
你还没有告诉我们PRINTf应该做什么。因此,所有的printfax
宏调用都可以
但是,您的程序确实有两个错误,使其无法正确执行
printfax
宏调用都可以
但是,您的程序确实有两个错误,使其无法正确执行
printfax
宏调用都可以
但是,您的程序确实有两个错误,使其无法正确执行
printfax
宏调用都可以
但是,您的程序确实有两个错误,使其无法正确执行
必须将其转换为字符串,然后显示。必须将其转换为字符串,然后显示。必须将其转换为字符串,然后显示。必须将其转换为字符串,然后显示。