Программа сборки для вычитания трех целых чисел из пользовательского ввода (xyz)
Здравствуйте, я пытаюсь написать программу, которая вычитает три целых числа (xyz), которые вводит пользователь, а затем выводит их на экран. Я верю, что я на правильном пути, но теряюсь, куда идти дальше. Я новичок в сборке. Это сборка irvine32. Спасибо!
TITLE Programming Assignment 1 (main.asm)
INCLUDE Irvine32.inc
.data
myMessage1 BYTE "Please input integer x: ",0dh,0ah,0
myMessage2 BYTE "Please input integer y: ",0dh,0ah,0
myMessage3 BYTE "Please input integer z: ",0dh,0ah,0
inputNum1 DWORD ?
inputNum2 DWORD ?
inputNum3 DWORD ?
.code
main PROC
call Clrscr
mov edx,offset myMessage1
call WriteString
call ReadInt
mov inputNum1,eax
mov edx,offset myMessage2
call WriteString
call ReadInt
mov inputNum2,ebx
mov edx,offset myMessage3
call WriteString
call ReadInt
mov inputNum3,ecx
sub eax, ebx
sub ebx, ecx
exit
main ENDP
END main
1 ответ
ReadInt
возвращает число в eax
, Поэтому вы должны записать это в свои переменные. Для выполнения арифметики вам необходимо использовать указанные переменные. Такие как:
mov edx,offset myMessage1
call WriteString
call ReadInt
mov inputNum1,eax
mov edx,offset myMessage2
call WriteString
call ReadInt
mov inputNum2,eax
mov edx,offset myMessage3
call WriteString
call ReadInt
mov inputNum3,eax
mov eax, inputNum1
sub eax, inputNum2
sub eax, inputNum3
call WriteInt
PS: научитесь пользоваться отладчиком и читайте документацию.