Показать на экране введенное числовое значение в hex-виде - Assembler

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

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

Написал программу, выдает ошибки. Не знаю как их исправить, и вроде как из-за одной остальные и появились.Помогите пожалуйста их исправить. ---------------------------------------------------------------------------------------------------------------------------------------- Задача: Двуйбайтный код вводится с клавиатуры в двоичном виде. Показать на экране его числовое значение в hex виде. Мой код
.386
dseg segment use16
    text1 db 13,10 'Type BIN: $'
    text2 db 13,10 0Dh,0Ah,'Result..: ',0Dh,0Ah,'$'
    Buf db 17,18 dup(?)
dseg ends
 
cseg segment use16
assume cs:cseg, ds:dseg
 
m1:
    mov cx,dseg
    mov ds,cx
 
    mov ah,9    
    lea DX,text1
    int 21h
    mov ah,0Ah
    lea DX,Buf
    int 21h
    mov DX,DS:Buf
    lea Di,DS:Buf+2
    mov CX,DS:Buf+1
m2:
    cmp DS:[DI],31h
    jne short m3 ;если не равно
    or AX, 00000001b
m3:
    shl AX,1
    inc DI
    loop m2
    mov ah,9
    lea DX,text2
    int 21h
    mov DX,AX
    call PECHAT
 
    ;Печатает символ и переводит курсор на позицию вправо
WRITE proc 
      mov AH,9
      xor BH,BH
      mov BL,07H
      ;mov CX,1
      mov AL,DL
      int 10h
      inc DL
      ret
WRITE endp
    
    ;Печатает одну шестнадцатеричную цифру (младшую тетраду DL)
    ;(старшая тетрада должна быть равна 0)
    ;DL - цифра
NA_CONSOL proc
        cmp  DL,0Ah
        jae  BUKVA
        add  DL,30h
        JMP  POKAZ
    BUKVA:
        add  DL,37h
    POKAZ:
      call WRITE     ;             ------ СДЕЛАТЬ ПЕЧАТЬ
      ret
NA_CONSOL endp
 
    ;Печатает две шестнадцатеричные цифры
RASHIREN proc
      mov  DH,DL
      mov  CL,4
      shr  DL,CL
      call NA_CONSOL
      mov  DL,DH
      and  DL,0Fh
      call NA_CONSOL
      ret
RASHIREN endp
    
PECHAT proc ;двухбайтное число на консоль
        mov CX,DX
        call RASHIREN
        xchg DL,CH
        call RASHIREN
        ret
PECHAT endp
 
cseg ends 
end PECHAT
;Завершаем программу 
mov ah, 4ch
int 21h
cseg ends
end m1

Решение задачи: «Показать на экране введенное числовое значение в hex-виде»

textual
Листинг программы
cmp byte ptr ds:[di],31h

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


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

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

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