Пытаюсь отобразить свое имя и ввод символа через машинный язык NASM через DOSBox. Это очень просто, но у меня проблемы с кодом. Мой код указан ниже.
Инструкции заключаются в том, чтобы написать программу для 8086, которая будет:
- Отображать свое имя в одной строке
- На следующей строке отобразите «?»
- Чтение символа с клавиатуры
- Отображение второго сообщения и символа, следующего за ним в последовательности символов ASCII.
Вот мой код до сих пор. По какой-то причине это не сработает, так как я не знаю, как получить символ, следующий за последовательностью символов ASCII.
Подскажите пожалуйста, что я делаю не так?
И правильно ли я нахожусь?
А также как читать новый символ ASCII?
ЗДЕСЬ МОЙ КОД ПОКА:
org 100h
section .data
msg DB "Name of Person"
char DB '?'
char1 DB ' '
msg2 DB 0dh, 0ah, 'The following character in sequence is: '
char3 DB ' ','$'
section .text
Start:
mov dx, [msg] ;get message
mov ah, 09h ;display string function
int 21h ;display message
;input a character
mov ah, 1 ;read char fcn
int 21h ;input char into AL
mov [char1], al ;store character
;display in same line
mov dx, [char1] ;read char1
mov ah, 1 ;display character
int 21h ;display message
;display on next line next character
mov dx, msg2 ;get last line message
int 21h ;display message
Exit:
mov ah, 4Ch ;DOS function: Exit program
mov al, 0 ;return exit code value
int 21h ;Call DOS. Terminate program
INT 21h
. Это должно помочь вам большое время. P.S.: Не забудьте установить сегмент данныхDS
сразу послеStart
, если вы не создаете файл.COM
, как указано с помощьюorg 100h
(.COM
), а вместо этого используете разделы (.EXE
). - person zx485   schedule 25.09.2018