Ассемблер и программирование для IBM PC


          

Напишите машинные команды для а)


ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ ------------------------------------------------------------
2.1. Напишите машинные команды для а) пересылки шест. значения 4629 в регистр AX; б) сложения шест. 036A с содержимым регистра AX.
2.2. Предположим, что была введена следующая е команда:
E CS:100 B8 45 01 05 25 00
Вместо шест.значения 45 предполагалось 54. Написшите команду E для корректировки только одного неправильно введенного байта, т.е. непосредственно замените 45 на 54.
2.3. Предположим, что введена следующая е команда:
E CS:100 B8 04 30 05 00 30 CB
а) Что представляют собой эти команды? (Сравните с первой программой в этой главе). б) После выполнения этой программы в регистре AX должно быть значение 0460, но в действительности оказалось 6004. В чем ошибка и как ее исправить?
Ассемблер для IBM PC. Глава 2 44
в) После исправления команд необходимо снова выполнить программу с первой команды. Какие две команды отладчика потребуются?
2.4. Имеется следующая программа в машинных кодах:
B0 25 D0 E0 B3 15 F6 E3 CB
Программа выполняет следующее: - пересылает шест.значение 25 в регистр AL; - сдвигает содержимое регистра AL на один бит влево (в результате в AL будет 4A); - пересылает шест.значение 15 в регистр BL; - умножает содержимое регистра AL на содержимое регистра BL.
Используйте отладчик для ввода (E) этой программы по адресу CS:100. Не забывайте, что все значения представ лены в шестнадцатиричном виде. После ввода программы наберите D CS:100 для просмотра сегмента кода. Затем введите команду R и необходимое число команд T для пошагового выполнения программы до команды RET. Какое значение будет в регистре AX в результате выполнения программы?
2.5. Используйте отладчик для ввода (E) следующей программы в машинных кодах:
Данные: 25 15 00 00 Машинный код: A0 00 00 D0 E0 F6 26 01 00 A3 02 00 CB
Программа выполняет следующее: - пересылает содержимое одного байта по адресу DS:00 (25) в регистр AL; - сдвигает содержимое регистра AL влево на один бит (получая в результате 4A); - умножает AL на содержимое одного байта по адресу DS:01 (15); - пересылает результат из AX в слово, начинающееся по адресу DS:02.

Содержание  Назад  Вперед