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

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

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

Делаю задания по асемблеру и нужно переделать прерывания, что бы программа работала, остальной код написано верно, исправить нужно лишь int где оно попадается. Особая просьба, описать почему именно такое прерывание, и почему решили, что нужно использовать именно его. На всякий случай, программа в EMU8086. Код №1
Листинг программы
  1. .model tiny
  2. .code
  3. org 100h
  4. begin:
  5. mov dh, 10
  6. mov bl, dh
  7. xor bh, bh
  8. and bl, 0F0h
  9. shr bl, 4
  10. mov al, table [bx]
  11. int 29h
  12. mov bl, dh
  13. and bl, 0Fh
  14. mov al, table [bx]
  15. int 29h
  16. mov al, 13
  17. int 29h
  18. mov al, 10
  19. int 29h
  20. Ret
  21. table db '0123456789ABCDEF'
  22. end begin
Код №2
Листинг программы
  1. .Model tiny
  2. .Code
  3. org 100h
  4. begin:
  5. mov dh, 33
  6. mov al, dh
  7. xor ah, ah
  8. mov bl, 10
  9. xor cx, cx
  10. @1:
  11. div bl
  12. push ax
  13. inc cx
  14. xor ah, ah
  15. or ax, ax
  16. jnz @1
  17. @2:
  18. pop ax
  19. xchg ah, al
  20. add al, 30h
  21. int 29h
  22. loop @2
  23. mov al, 13
  24. int 29h
  25. mov al, 10
  26. int 29h
  27. Ret
  28. end begin
P.S. я знаю, что тут одни int29h, но как я не менял прерывания, у меня выходило либо ошибка либо просто черный екран. Особая просьба, описать почему именно такое прерывание, и почему решили, что нужно использовать именно его.

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

textual
Листинг программы
  1. model   tiny
  2. .code
  3. org 100h
  4. begin:
  5. ;first
  6.     mov dh,2Bh
  7.     lea bx,tabl
  8.     mov al,dh
  9.     aam 10h
  10.     push    ax
  11.     mov al,ah
  12.     xlat
  13.     int 29h
  14.     pop ax
  15.     xlat
  16.     int 29h
  17. ;
  18.     mov al,' '
  19.     int 29h
  20. ;
  21. ;second
  22.     mov dh,251
  23.     xor cx,cx
  24.     mov ah,dh
  25. @@01:   mov al,ah
  26.     aam
  27.     push    ax
  28.     inc cx
  29.     or  ah,ah
  30.     jnz @@01
  31. @@02:   pop ax
  32.     or  al,'0'
  33.     int 29h
  34.     loop    @@02
  35.     ret
  36. tabl    db  '0123456789ABCDEF'
  37. end begin

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


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

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

15   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы