Вывод названия функциональных клавиш, которые нажаты - Assembler

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

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

я делаю лабку, где нужно выводить название клавиши которую нажали, она еще недодалана, но там есть проблемка которую я не понимаю, когда нажимаю кнопку, которую уже прописал, выводиться она и все строки, что инициализированая после строки, что я вывожу
Листинг программы
  1. .model tiny
  2. .code
  3. data segment
  4. mesH db'Home',10,13,'$'
  5. mesE db 'End',10,13,'$'
  6. mesEnt db 'Enter',10,13,'$'
  7. mesD db 'Del',10,13,'$'
  8. mesIn db 'Insert',10,13,'$'
  9. mesPU db 'PgUp',10,13,'$'
  10. mesPD db 'PgDn',10,13,'$'
  11. eror db 'enter symbol is not functional!', 10, 13, '$'
  12. kod db ?
  13. data ends
  14. code segment
  15. assume cs:code, ds:data
  16. begin:
  17. mov ax,data
  18. mov ds,ax
  19. mov ax,2h
  20. int 10h
  21. enterSymbol:
  22. mov ah,00
  23. int 16h
  24. cmp al,00
  25. jne erorSymbol
  26. cmp ah, 49h
  27. jne cont0
  28. call mesPgUp
  29. jmp enterSymbol
  30. cont0:
  31. cmp ah, 51h
  32. jne cont1
  33. call mesPgDn
  34. jmp enterSymbol
  35. cont1:
  36. cmp ah, 52h
  37. jne cont2
  38. call mesInsert
  39. jmp enterSymbol
  40. cont2:
  41. cmp ah, 53h
  42. jne cont3
  43. call mesDel
  44. jmp enterSymbol
  45. cont3:
  46.  
  47. cmp ah, 47h
  48. call mesHome
  49. jmp exit1
  50.  
  51. exit1:
  52. mov ax,4c00h
  53. int 21h
  54. proc mesHome
  55. mov ah,9
  56. lea dx,mesH
  57. int 21h
  58. mesHome endp
  59. proc mesEnd
  60. mov ah,9
  61. lea dx,mesE
  62. int 21h
  63. mesEnd endp
  64. proc mesEnter
  65. mov ah, 9
  66. lea dx, mesEnt
  67. int 21h
  68. mesEnter endp
  69. proc mesDel
  70. mov ah, 9
  71. lea dx, mesD
  72. int 21h
  73. mesDel endp
  74. proc mesInsert
  75. mov ah, 9
  76. lea dx, mesIn
  77. int 21h
  78. mesInsert endp
  79. proc mesPgUp
  80. mov ah, 9
  81. lea dx, mesPU
  82. int 21h
  83. mesPgUp endp
  84. proc mesPgDn
  85. mov ah, 9
  86. lea dx, mesPD
  87. int 21h
  88. mesPgDn endp
  89.  
  90. erorSymbol:
  91. mov ah, 9
  92. lea dx, eror
  93. int 21h
  94. jmp enterSymbol
  95.  
  96. code ends
  97. end begin

Решение задачи: «Вывод названия функциональных клавиш, которые нажаты»

textual
Листинг программы
  1. ;......
  2. cont0:
  3.     cmp   ah, 51h
  4.     jne   cont1
  5.     lea   dx,mesPgDn
  6.     call  Print
  7.     jmp   enterSymbol
  8.  
  9. ;.......
  10. proc Message
  11.     mov ah,9
  12.     int 21h
  13.     ret
  14. Message endp

Объяснение кода листинга программы

Код выполняет проверку, является ли нажатая клавиша '51h' (функциональная клавиша F5). Если это так, то выводится сообщение mesPgDn (подразумевается, что это строка, помеченная как mesPgDn в ресурсах программы). Затем происходит переход к следующей функциональной клавише. Если это не '51h', то происходит переход к процедуре обработки сообщения. В этой процедуре происходит вывод сообщения, после чего возвращается управление в основную программу.

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


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

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

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

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

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

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