Кодировочная таблица - Assembler

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

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

Добрый день. Программа на ассемблере(ТАСМ), под ДОС. Требуется вывести кодировочную таблицу (с управляющими символами). Код вроде бы и есть, но не работает так, как надо, а ошибку найти никак не могу. Подозреваю, что что-то с циклом. Заодно приклепляю, что получается при запуске моего варианта. Буду очень благодарна за помощь или хотя бы наводку. Вот код программы:
.MODEL small
.data
const16 db 16
hexsym  db '0123456789ABCDEF'
pattern db 'XX-$'
codsym db ?
.code
.startup
mov ax,40h
mov es,ax
mov codsym,0
mov cx,16
prtable:
mov si,16
push cx
mov cx,1        
povt:
mov al,codsym
mov ah,0
div const16
mov bx,offset hexsym
xlat
    mov pattern,al
    mov al,ah
    xlat
    mov pattern+1,al
    mov ah,9
    lea dx,pattern
    int 21h
mov bh,es:[62h]
mov bl,0
mov ah,10     
mov al,codsym   
mov cx,1
int 21h
mov ah,03
int 21h
mov ah,02
add dl,2
int 21h
add codsym,16 
mov cx,si
dec si
loop povt
pop cx
inc codsym
loop prtable
mov ah,4ch
int 21h
end

Решение задачи: «Кодировочная таблица»

textual
Листинг программы
.MODEL tiny
.code
.186
org 100h
start:
    mov ax,3
    int 10h
    mov ax,0b800h
    mov es,ax
    xor dx,dx
    xor di,di
    mov cx,256
    cld
@@01:   call    @@02
    mov al,'-'
    stosw
    mov al,dl
    stosw
    mov al,' '
    stosw
    inc dx
    loop    @@01
    xor ax,ax
    int 16h
    ret
@@02:   mov al,dl
    shr al,4
    call    @@03
    mov al,dl
@@03:   and al,0fh
    add al,'0'
    cmp al,'9'
    jbe @@04
    add al,7
@@04:   mov ah,7h
    stosw
    ret
    end start

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


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

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

10   голосов , оценка 3.9 из 5