Переслать содержимое регистра 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 соответственно.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д