mov ebx, sval (input ("Входной номер")) записывает в eax - PullRequest
0 голосов
/ 26 мая 2020

Итак, я пытаюсь ввести число через консоль, которое следует сохранить в ebx для последующих разделов. eax также используется заранее для хранения нескольких чисел, которые позже будут разделены на ebx. Но число, которое должно храниться в ebx, заменяет eax и сохраняет число в eax и ebx. Может ли кто-нибудь объяснить мне, почему это так и, возможно, как это исправить. Я помещу код ниже.

.386
.model flat, stdcall
option casemap:none

include c:\masm32\include\windows.inc
include c:\masm32\include\masm32rt.inc

include c:\masm32\include\masm32.inc
include c:\masm32\include\kernel32.inc

include c:\masm32\macros\macros.asm

includelib c:\masm32\lib\kernel32.lib
includelib c:\masm32\lib\masm32.lib

.data

.code

main:

mov esi, 0
mov eax, 0
push eax

L1:
    inc esi
    cmp esi, 2
    jz inputDivider

    printf("Input a number. \n")
    mov eax, sval(input())
    push eax

    jmp L1

inputDivider:
    mov ebx, sval(input("Input a Divider \n"))
...