Описать, почему именно такое прерывание (int 29h) - Assembler
Формулировка задачи:
Делаю задания по асемблеру и нужно переделать прерывания, что бы программа работала, остальной код написано верно, исправить нужно лишь int где оно попадается. Особая просьба, описать почему именно такое прерывание, и почему решили, что нужно использовать именно его. На всякий случай, программа в EMU8086.
Код №1
Код №2
P.S. я знаю, что тут одни int29h, но как я не менял прерывания, у меня выходило либо ошибка либо просто черный екран. Особая просьба, описать почему именно такое прерывание, и почему решили, что нужно использовать именно его.
.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
.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
Решение задачи: «Описать, почему именно такое прерывание (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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д