Описать, почему именно такое прерывание (int 29h) - Assembler

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

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

Делаю задания по асемблеру и нужно переделать прерывания, что бы программа работала, остальной код написано верно, исправить нужно лишь int где оно попадается. Особая просьба, описать почему именно такое прерывание, и почему решили, что нужно использовать именно его. На всякий случай, программа в EMU8086. Код №1
.model tiny
.code
org 100h
begin:
mov dh, 10
mov bl, dh
xor bh, bh
and bl, 0F0h
shr bl, 4
mov al, table [bx]
int 29h
mov bl, dh
and bl, 0Fh
mov al, table [bx]
int 29h
mov al, 13
int 29h
mov al, 10
int 29h
Ret
table db '0123456789ABCDEF'
end begin
Код №2
.Model tiny
.Code
org 100h
begin:
mov dh, 33
mov al, dh
xor ah, ah
mov bl, 10
xor cx, cx
@1:
div bl
push ax
inc cx
xor ah, ah
or ax, ax
jnz @1
@2:
pop ax
xchg ah, al
add al, 30h
int 29h
loop @2
mov al, 13
int 29h
mov al, 10
int 29h
Ret
end begin
P.S. я знаю, что тут одни int29h, но как я не менял прерывания, у меня выходило либо ошибка либо просто черный екран. Особая просьба, описать почему именно такое прерывание, и почему решили, что нужно использовать именно его.

Решение задачи: «Описать, почему именно такое прерывание (int 29h)»

textual
Листинг программы
model   tiny
.code
org 100h
begin:
;first
    mov dh,2Bh
    lea bx,tabl
    mov al,dh
    aam 10h
    push    ax
    mov al,ah
    xlat
    int 29h
    pop ax
    xlat
    int 29h
;
    mov al,' '
    int 29h
;
;second
    mov dh,251
    xor cx,cx
    mov ah,dh
@@01:   mov al,ah
    aam
    push    ax
    inc cx
    or  ah,ah
    jnz @@01
@@02:   pop ax
    or  al,'0'
    int 29h
    loop    @@02
    ret
tabl    db  '0123456789ABCDEF'
end begin

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

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