Преобразование двоичного числа в символьном виде - Assembler/TASM

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

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

Нужна помощь в программе: есть строка на входе, введенная с клавиатуры, содержащая в себе двоичное число, эту строку нужно преобразовать в двоичное число(уже не строка), понятное для ассемблера для дальнейших действий, вот код, где происходит преобразование, в дебаггере видно как изменяется строка в число, но не могу вывести это число. Поэтому не могу проверить, верно ли все преобразовано, чтобы в дальнейшем выполнять действия. Прошу помощи, может я где накосячил сам, буду благодарен.
.MODEL SMALL
data segment
     string db 20 dup ('$')
data ends
 
code segment
assume cs:code,ds:data
start:
    mov ax, data
    mov ds, ax
    
    mov ah,0ah
    lea dx,string
    int 21h 
    
    mov string+1,0ah
    
    mov ah,9
    lea dx,string+1
    
    mov ah,09h
    int 21h
    
    mov ah, 10h
    int 16h

    xor ax,ax
    mov cx,4
    mov si,0
    xor bx,bx
    ;lea dx,string
@m1:
    mov bl, byte ptr string[si+1]
    sub bl,30h
    add ax,bx
    shl ax,1
    inc si
    dec cx
    cmp cx,0
    
    mov ah,09h
    int 21h
    jne @m1
    cmp bx,'$'
 
    mov ax, 4c00h
    int 21h
 
code ends
end start

Решение задачи: «Преобразование двоичного числа в символьном виде»

textual
Листинг программы
; входные данные:
; ax - число для отображения
ShowBin proc

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

  1. Задаём старшие биты регистра AX как 1000 (13), младшие биты не трогаем (в данном случае это не имеет значения, так как дальше всё равно используется регистр DX)
  2. Выводим на экран первый символ, соответствующий младшему биту регистра DX (символы от 0 до 9 и A-F)
  3. Сбрасываем младший бит регистра DX
  4. Выводим на экран второй символ, соответствующий младшему биту регистра DX
  5. Сбрасываем младший бит регистра DX
  6. Продолжаем аналогичные шаги для всех младших битов регистра DX
  7. Возвращаем управление в вызывающую программу ShowBin endp

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


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

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

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