Переслать содержимое регистра AX в две однобайтовые переменные - Assembler
Формулировка задачи:
Здравствуйте!
Изучаю ассемблер, теория дается очень тяжело, поэтому на практике просто нулевой результат. Конкретно сейчас столкнулся с заданием:
-Переслать содержимое регистра AX в две однобайтовые переменные
Прошу как тугому новичку подсказать. То есть мне нужно объявить двухбайтовую переменную, после как-то разделить ее на две однобайтовые и присвоить результат двум однобайтовым? Тыкать в компилятор рандомными решениями не могу, т.к. для меня это темный лес, без единого варианта. Спасибо.Решение задачи: «Переслать содержимое регистра AX в две однобайтовые переменные»
textual
Листинг программы
AX ; AX = 2 байта (слово) / \ AH AL ; AH = 1 байт; AL = 1 байт ; эти переменные одинакового размера A db 0,0 ;переменная B dw 0 mov ax,1234h ;AH = 12h; AL = 34h ; Запись значений в переменные mov byte [A],ah ;сохраняем AH в байте, по адресу(А) mov byte [A+1],al ;сохраняем AL в байте, по адресу(А+1) mov word [B],ax ;сохраняем AХ в слове, по адресу(В) ; Чтение значений их переменных mov cx,word[B] ;читаем в СХ слово с адреса(В) mov dh,byte[A] ;DH = 12h mov dl,byte[A+1] ;DL = 34h
Объяснение кода листинга программы
Выполняемые действия в коде:
- Переменная AX используется как 2-байтовое значение.
- AH и AL являются 1-байтовыми переменными, которые содержат разные части 2-байтового значения AX.
- Переменные A и B создаются для хранения 1-байтового и 2-байтового значений соответственно.
- Значение AX устанавливается на 1234h (12h для AH и 34h для AL).
- Значения AH и AL записываются в байты по адресам A и A+1 соответственно.
- Значение AX записывается в слово по адресу B.
- Значения CX и DX считываются как слово по адресу B.
- Значения DH и DL считываются как байты по адресам A и A+1 соответственно.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д