Перевод числа из OCT в BIN систему счисления ассемблер - Assembler

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

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

Доброго времени суток! Стоит задача перевести число из 8 в 2 систему счисления на ассемблере. При запуске программы вводим число в 8 системе счисления и программа переводит это число в бинарную систему счисления. Не знаю, как описать этот перевод на ассемблере. Объясните пожалуйста на примере программы.

Решение задачи: «Перевод числа из OCT в BIN систему счисления ассемблер»

textual
Листинг программы
.model small
.386
 
.data
var db 5 dup(?)
msg1 db 0Ah,0Dh,'input (oct): $'
msg2 db 0Ah,0Dh,'output (bin): $'
 
.stack
db 255 dup(?)
 
.code
start:
mov ax,@data
mov ds,ax
mov es,ax
 
mov ah,09h
lea dx,msg1
int 21h
 
lea di,var
xor cx,cx
input:
mov ah,01h
int 21h
 
cmp al,0Dh
je ready
 
cmp al,'7'
jbe skip
 
mov ah,02h
mov dl,08h
int 21h
 
mov ah,02h
mov dl,20h
int 21h
 
mov ah,02h
mov dl,08h
int 21h
 
jmp input
 
skip:
and al,0Fh
 
stosb
 
inc cx
 
cmp cx,5
je ready
jmp input
 
ready:
or cx,cx
je exit
 
push cx
 
lea si,var
xor di,di
xor ax,ax
 
lodsb
mov di,ax
 
dec cx
 
mov bx,8
collect:
or cx,cx
je two
 
mov ax,di
 
mul bx
 
mov di,ax
 
xor ah,ah
lodsb
 
add di,ax
 
dec cx
jmp collect
 
two:
pop cx
 
mov ax,3
 
mul cx
 
mov dx,ax
 
mov cx,16
sub cx,ax
 
mov bx,di
shl bx,cl
 
mov cx,dx
 
mov ah,09h
lea dx,msg2
int 21h
bit:
shl bx,1
jc one
 
zero:
mov ah,02h
mov dl,'0'
int 21h
 
jmp good
 
one:
mov ah,02h
mov dl,'1'
int 21h
 
good:
loop bit
 
exit:
mov ah,02h
mov dl,0Ah
int 21h
 
mov ah,4Ch 
mov al,00h
int 21h   
end start

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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