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