Определение суммы, произвести деление, найти частное и остаток - Assembler
Формулировка задачи:
Создать новый однобайтный код следующим образом: биты 7-6 взять из старших двух битов numb2, биты 5-3 взять из младших трех битов numb1, остальные биты нулевые. Затем определить суму нового кода, numb1 и numb2. Определить частное и остаток от деления полученной суммы на numb2.
Решение задачи: «Определение суммы, произвести деление, найти частное и остаток»
textual
Листинг программы
.386 seg1 segment use16 numb1 db 1 numb2 dw 3 a dw ? b dw ? seg1 ends cseg segment use16 assume ds:seg1, cs:cseg, ; загрузка указателя сегмента ds m1: mov cx, seg1 mov ds, cx mov bx,numb2 ;пересылка numb2 в bx and bx,1100000000000000b ;обнуляем все кроме старших 2-х байт,результат в bh mov al,numb1 and al,00000111b ;обнуляем все кроме 3-х младших битов shl al,3 ; смещение на 3 влево or al,bh ; логическое сложение mov ah,numb1 mov bx,numb2 add al,numb1 ;сложение результат полученного байта с numb1 mov ah,0 ; add ax,bx ;сложение результат с numb2 mov dx,0 div bx ;деление полученной суммы на numb2 mov a,ax ;частное mov b,dx ;остаток ; выгрузка из памяти mov ah, 4ch int 21h cseg ends end m1
Объяснение кода листинга программы
Список выполнения кода:
- Загрузка указателя сегмента ds
- Обнуление всех битов кроме старших двух байт в bx
- Обнуление всех битов кроме 3-х младших битов в al
- Смещение на 3 влево в al
- Логическое сложение al и bh
- Запись результата в ah
- Пересылка bx в ah
- Сложение ah и bx
- Запись результата в ax
- Передача результата в dx
- Деление ax на bx
- Запись частного в a
- Запись остатка в b
- Выгрузка из памяти
- Завершение работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д