Даны два числа в двоичном виде - Assembler (223446)

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста в ассемблере. Даны два числа в двоичном виде. Поменять местами 7,6,5,1- разряды первого числа с 0,2,3,4 разрядами второго числа соответственно. Результаты логически сложить и умножить на 8

Решение задачи: «Даны два числа в двоичном виде»

textual
Листинг программы
.model small
.386
 
.data
a db 11011101b
b db 11101011b
 
.stack
db 255 dup(?)
 
.code
start:
mov ax,@data
mov ds,ax
 
xor ah,ah
mov al,a
and al,00011101b
 
xor bh,bh
mov bl,b
and bl,00011101b
shl bx,4
ror bh,5
shl bx,1
ror bh,2
shl bx,1
ror bh,2
shl bl,1
shl bx,1
ror bh,1
xchg bh,bl
 
or al,bl    
mov dl,al   ;замена первого числа
 
xor bh,bh
mov bl,b
and bl,11100010b
 
xor ah,ah
mov al,a
and al,11100010b
shl ax,1
ror ah,3
shl ax,1
ror ah,2
shl ax,1
ror ah,2
shl al,3
shl ax,1
ror ah,1
shr ah,3
xchg ah,al
 
or bl,al    ;замена второго числа
 
or bl,dl    ;логическое сложение результатов
 
shl bx,3    ;умножение на восемь
 
mov ax,bx
    
mov ah,4Ch 
mov al,00h
int 21h
end start

Объяснение кода листинга программы

Код выполняет следующие действия:

  1. Задаёт два числа в двоичном виде в переменные a и b.
  2. Выполняет операции по замене первого и второго числа на их эквиваленты с заданными битами.
  3. Выполняет логическое сложение результатов замены первого и второго числа.
  4. Выполняет умножение результата на восемь.
  5. Выводит результат на экран.

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы