Кто-нибудь может объяснить этот привет DOS мир для emu8086? - PullRequest
0 голосов
/ 13 января 2020
.Model Small
.STACK

.DATA
      MSG1 DB \"HELLO! How r u?$\"

.CODE

   MOV AX,@DATA
   MOV DS,AX

   lea dx,MSG1
   mov ah,09h
   int 21h

   mov ah,4ch
   int 21h

END

1 Ответ

3 голосов
/ 20 января 2020

Что это значит.

.Model Small

Программа соответствует модели памяти small , где код и сегменты данных различны и не перекрываются. Программа может иметь не более 65536 байтов кода и не более 65536 байтов стека данных и . Программа использует около указателей.

.STACK

Здесь ничего не упоминалось, поэтому стек принимает размер по умолчанию. Вы можете посмотреть его в руководстве по emu8086.

.DATA
MSG1 DB \"HELLO! How r u?$\"

Этот раздел .DATA содержит одну строку HELLO! How r u?$

.CODE
MOV AX,@DATA
MOV DS,AX

Эти инструкции заставляют регистр сегмента DS указывать на раздел .DATA вашей программы, тем самым обеспечивая доступ к этой единственной строке.

lea dx,MSG1
mov ah,09h
int 21h

Адрес смещения этой строка загружается в регистр DX. Затем выполняется вызов API DOS для отображения символов строки на экране. Символ $ служит индикатором конца строки и не отображается на экране.

mov ah,4ch
int 21h

Этот вызов API DOS завершает программу.

END

Просто требование синтаксиса.

...