Помощь - Поиск - Пользователи - Календарь
Полная версия: Машинный код
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Assembler
Гость
Помогите решить эти две задачки, они тестовые только ответ нужен, но пожалуйста дайте сам метод решения чтобы я остальны мог решить. И дайте пожалуйста ссылку на материал по машинным кодам. Очень нужно. Зарание всем благодарен.

Имеется программа, которая выполняет следующее:
• пересылает значения 25Н в регистр AL;
• сдвигает содержимое регистра AL на один бит влево (в результате в AL будет 4A);
• пересылает значения 15Н в регистр BL;
• умножает содержимое регистра AL на содержимое регистра BL.
Какое значение будет в регистре AX после выполнения программы?

Программа выполняет следующее:
• пересылает содержимое одного байта по адресу DS:00 (25) в регистр AL;
• сдвигает содержимое регистра AL влево на один бит (получая в результате 4А);
• умножает AL на содержимое одного байта по адресу DS:01 (15);
• пересылает результат из AX в слово, начинающееся по адресу DS:02.
Напишите команды этой программы.
zloy_pes
1: AX=612h
Решение (в 16-ричной системе сч):
B0 25 ;mov al,25
D0 E0 ;shl al,1
B3 15 ;mov bl,15h
F6 E3 ;mul bl
C3 ;ret
...
Ну и второе:
C6 06 00 00 25 ;mov ds:00, 25h
A0 00 00 ;mov al, ds:00
D0 E0 ;shl al,1
C6 06 01 00 15 ;mov al,15
F6 26 01 00 ;mul ds:00
A3 02 00 ;mov ds:02, ax
C3 ;ret

Вам нужна таблица опкодов: Нужна таблица опкодов
Ну а для самых ленивых - можно писать на асемблере, и после компиляции посмотреть какимнибудь hex-viewer'ом wink.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.