Вызов значения readHex не ожидает ввода пользователя - PullRequest
0 голосов
/ 05 октября 2018

Я пишу программу, которая предлагает пользователю ввести предложение, шестнадцатеричное значение, представляющее количество символов, которое нужно удалить из предложения, и второе шестнадцатеричное значение, которое представляет позицию, с которой нужно удалить удаление.Я сталкиваюсь с проблемой, побуждающей пользователя ввести первое шестнадцатеричное значение, по какой-то причине этот ассемблер не ждет, пока пользователь введет значение.Подсказка для предложения работает (ожидает пользователя), как последняя инструкция для ввода шестнадцатеричного значения.Почему это происходит?

String1 BYTE "Enter a sentence: ", 0
String2 BYTE "Please enter the number of characters to delete(in 
hexidecimal): ", 0
String3 BYTE "Please enter to position from where to start deleting(in 
hexidecimal): ", 0
StringIn BYTE 50 DUP (?)
hexA WORD ?
hexB WORD ?

.code
main proc
call DeleteString

main endp

DeleteString PROC
mov edx, OFFSET String1
call WriteString
mov edx, OFFSET StringIn
call ReadString ;this instruction is waiting for user input
mov edx, OFFSET String2
call WriteString
call ReadHex ;this is my issue, it is being passed over by assembler
mov hexA, ax
mov al, 0Ah
call WriteChar
mov al, 0Dh
call WriteChar
mov edx, OFFSET String3
call WriteString
call ReadHex ;this instruction is waiting for user input
mov hexB, ax

DeleteString ENDP
end main

1 Ответ

0 голосов
/ 05 октября 2018

Итак, мне нужно было добавить размер буфера в ECX.Работает сейчас

mov edx, OFFSET String1
call WriteString
mov ecx, 50 ;######## THIS WAS MISSING ########
mov edx, OFFSET StringIn
call ReadString

mov edx, OFFSET String2
call WriteString
call ReadHex
mov hexA, eax
mov edx, OFFSET String3
call WriteString
call ReadHex
mov hexB, eax
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...