Ввод символов с клавиатуры - Assembler

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

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

Добрый день, Помогите пожалуйсто реализовать ввод елементов массива с клавиатуры Заранее спасибо Вот код програмы:
Листинг программы
  1. org 100h
  2. jmp start
  3. array db '2 61 25 34 45 11 15 1','$'
  4. len = ($ - array)-1 ;
  5. fName db 'data.txt',0 ; имя файла
  6. start: ;
  7. mov ah,9 ; покажем массив на экране
  8. mov dx,array ;
  9. int 21h ;
  10. mov ah,3Ch ; создать файл!
  11. mov dx,fName ;
  12. mov cx,20h ;
  13. int 21h ;
  14. xchg ax,bx ;
  15. mov ah,40h ; запись в файл!
  16. mov cx,len ;
  17. mov dx,array ;
  18. int 21h ;
  19. mov ah,3Eh ; закрыть файл!
  20. int 21h ;
  21. ;---------------------------------------------------------------------—
  22. mov cx,len ; сортировка массива —-----------------//
  23. dec cx ;
  24. mov si,array ;
  25. mov di,si ;
  26. sort: push cx di si ;
  27. xor bx,bx ; флаг перестановок
  28. fuck: lodsw ;
  29. cmp ah,al ;
  30. jae @@1 ;
  31. inc bx ;
  32. xchg ah,al ;
  33. @@1: stosw ;
  34. dec si ;
  35. dec di ;
  36. loop fuck ;
  37. pop si di cx ;
  38. or bx,bx ; перестановки были?
  39. jnz sort ;
  40. ;---------------------------------------------------------------------—
  41. mov al,10 ; выводим отсортированный массив на экран
  42. int 29h ;
  43. mov ah,9 ;
  44. mov dx,array ;
  45. int 21h ;
  46. exit:
  47. xor ax,ax ;
  48. int 16h ;
  49. int 20h ;

Решение задачи: «Ввод символов с клавиатуры»

textual
Листинг программы
  1. model   tiny
  2. .code
  3. szArray equ 25
  4. org 100h
  5. start:  lea si,dwArray
  6.     mov di,10
  7.     mov cx,szArray
  8. @@01:   call    InpNum
  9.     mov [si],bx
  10.     add si,2
  11.     loop    @@01
  12.     ret
  13. dwArray dw  szArray dup(?)
  14. dbInp   db  10,13,'Enter A['
  15. dwNum   dw  '00'
  16.     db  ']:=$'
  17. InpNum: mov ax,dwNum
  18.     and ax,0F0Fh
  19.     xchg    ah,al
  20.     aad 16
  21.     inc ax
  22.     aam 16
  23.     xchg    ah,al
  24.     or  ax,'00'
  25.     cmp ah,'9'
  26.     jbe @@0
  27.     inc al
  28.     mov ah,'0'
  29. @@0:    mov dwNum,ax
  30.     mov ah,9
  31.     lea dx,dbInp
  32.     int 21h
  33.     xor bx,bx
  34. @@1:    xor ax,ax
  35.     int 16h
  36.     cmp al,13
  37.     jz  @@2
  38.     cmp al,'0'
  39.     jb  @@1
  40.     cmp al,'9'
  41.     ja  @@1
  42.     int 29h
  43.     and ax,0fh
  44.     xchg    ax,bx
  45.     xor dx,dx
  46.     mul di
  47.     add bx,ax
  48.     jmp @@1
  49. @@2:    ret
  50.     end start

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


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

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

6   голосов , оценка 4.167 из 5

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

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

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