Irvine x86 汇编输出
Irvine x86 Assembly Output
我正在使用 Kip Irvine 的库学习汇编语言,我试图创建一个简单的程序,它将两个整数作为输入并输出它们的加法和减法,但我在输出它们时遇到问题。
include irvine32.inc
.data
myMessage BYTE "Enter First Number: ",0Ah
myMessage1 BYTE "Enter Second Number: ",0Ah
myMessage2 BYTE "Addition: ",0Ah
myMessage3 BYTE "Subtraction: ",0Ah
num1 DWORD ?
num2 DWORD ?
.code
main proc
mov edx, offset myMessage
call writestring
call readint
mov num1, eax
mov edx, offset myMessage1
call writestring
call readint
mov num2, eax
mov eax, num1
add eax, num2
mov edx, offset myMessage2
call writeint
mov eax, num1
sub eax, num2
mov edx, offset myMessage3
call writeint
exit
main endp
end main
预期输出:
Enter First Number: 5
Enter Second Number: 3
Addition: +8
Subtraction: +2
但我得到了
我不了解 irvine,但是手册非常清楚
这可能就是您想要的
include irvine32.inc
.data
; the strings have to be terminated, so ",0" is added:
myMessage BYTE "Enter First Number: ",0
myMessage1 BYTE "Enter Second Number: ",0
myMessage2 BYTE "Addition: ",0
myMessage3 BYTE "Subtraction: ",0
myMessage3 BYTE 10,13,0
num1 DWORD ?
num2 DWORD ?
.code
main proc
mov edx, offset myMessage
call writestring
call readint
mov num1, eax
mov edx, offset myMessage1
call writestring
call readint
mov num2, eax
; addition, compose the line ( 3 parts: prompt, number, newline)
mov edx, offset myMessage2
call writestring
mov eax, num1
add eax, num2
call writeint
mov edx, offset newLine ; add a CrLF here
call writestring
; subtraction
mov edx, offset myMessage3
call writestring
mov eax, num1
sub eax, num2
call writeint
mov edx, offset newLine
call writestring
exit
main endp
end main
我正在使用 Kip Irvine 的库学习汇编语言,我试图创建一个简单的程序,它将两个整数作为输入并输出它们的加法和减法,但我在输出它们时遇到问题。
include irvine32.inc
.data
myMessage BYTE "Enter First Number: ",0Ah
myMessage1 BYTE "Enter Second Number: ",0Ah
myMessage2 BYTE "Addition: ",0Ah
myMessage3 BYTE "Subtraction: ",0Ah
num1 DWORD ?
num2 DWORD ?
.code
main proc
mov edx, offset myMessage
call writestring
call readint
mov num1, eax
mov edx, offset myMessage1
call writestring
call readint
mov num2, eax
mov eax, num1
add eax, num2
mov edx, offset myMessage2
call writeint
mov eax, num1
sub eax, num2
mov edx, offset myMessage3
call writeint
exit
main endp
end main
预期输出:
Enter First Number: 5
Enter Second Number: 3
Addition: +8
Subtraction: +2
但我得到了
我不了解 irvine,但是手册非常清楚
这可能就是您想要的
include irvine32.inc
.data
; the strings have to be terminated, so ",0" is added:
myMessage BYTE "Enter First Number: ",0
myMessage1 BYTE "Enter Second Number: ",0
myMessage2 BYTE "Addition: ",0
myMessage3 BYTE "Subtraction: ",0
myMessage3 BYTE 10,13,0
num1 DWORD ?
num2 DWORD ?
.code
main proc
mov edx, offset myMessage
call writestring
call readint
mov num1, eax
mov edx, offset myMessage1
call writestring
call readint
mov num2, eax
; addition, compose the line ( 3 parts: prompt, number, newline)
mov edx, offset myMessage2
call writestring
mov eax, num1
add eax, num2
call writeint
mov edx, offset newLine ; add a CrLF here
call writestring
; subtraction
mov edx, offset myMessage3
call writestring
mov eax, num1
sub eax, num2
call writeint
mov edx, offset newLine
call writestring
exit
main endp
end main