此问题在此处已有答案:
Code executes condition wrong?(2个答案)
1小时前关闭。
我正在尝试比较两个输入值,并返回较大的值。我是新的组装,希望有人能帮助解决和解释我的错误。感谢您的耐心。
.586
.MODEL FLAT
INCLUDE io.h
.STACK 4096
.DATA
number1 DWORD ?
number2 DWORD ?
prompt2 BYTE "Enter first number", 0
prompt3 BYTE "Enter second number", 0
sum BYTE 11 DUP (?), 0
outcome BYTE "The greater value is:", 0
equal BYTE "The two inputs are equal", 0
string BYTE 40 DUP (?)
.CODE
_MainProc PROC
; Ask the user for the first number and store it in the EAX register
input prompt2, string, 40
atod string
mov eax, number1
; Ask the user for the second number and store it in the EBX register
input prompt3, string, 40
atod string
mov ebx, number2
; Compare the values in EAX and EBX and jump to the appropriate code
cmp eax, ebx
jg greater
jmp less
; If EAX is greater than EBX, print the value in EAX
greater:
dtos eax, sum
output outcome, sum
; If EAX is less than or equal to EBX, print the value in EBX
less:
dtos ebx, sum
output outcome, sum
_MainProc ENDP
END
需要返回两个输入数字中的最大值。
1条答案
按热度按时间7qhs6swi1#
是的,下面是一个如何使用
.586
指令编写代码的示例:在此代码中,.586指令位于文件的开头,它告诉汇编程序使用带有Pentium Pro指令扩展的x86指令集。此指令通常在编写32位系统的汇编代码时使用。
代码的其余部分类似于上一个示例,在该示例中,我们要求用户输入两个数字,使用cmp和jg指令对它们进行比较,并打印较大的值。