Emulator 8086, команда mov, не могу понять код - Assembler

Узнай цену своей работы

Формулировка задачи:

Есть следующий простой код, который выводит в видеорежиме символ 'A'
ORG 100h
 
MOV AX, 0B800h
MOV DS, AX
MOV CL, 'A'
MOV CH, 01011111b
MOV BX, 15Eh
MOV [BX], CX
 
RET
Пытаюсь понять код, возникает много вопросов. 0B800 = 47104 01011111 = 95 15E = 350 1. Почему именно эти числа используются в коде? AX - регистр-аккумулятор (что означает аккумулятор в данном контексте не совсем ясно). Допустим, он просто используется для хранения числа, которое мы потом помещаем в регистр DS, указывающий на начальный адрес сегмента данных. Можно было поместить другое число, а не 0B800? Почему именно оно? 2. Как включается видеорежим? Как я понял, в данной программе CL и CH хранят символ и цвет символа для вывода на экране. 15E - позиция символа на экране. Потом значение CX помещается в память с адресом B800:15Eh. Как вдруг в BX оказалось 0B800, которое содержится только в AX и в DS? Помогите прояснить, что творится в коде. Спасибо

Решение задачи: «Emulator 8086, команда mov, не могу понять код»

textual
Листинг программы
MOV [DS:BX], CX

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5