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