Немного подкоректировать вывод данных Tasm - Assembler

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

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

Помогите с такой проблемой. Есть код на тасме. он выводит индексы второго и предпоследнего элемнта массива, как сделать, чтобы он их через запятую выводил и перед этим начальный массив вывел? Я в асме 0, но задание нужно сделать
Листинг программы
  1. MODEL small
  2. STACK 256
  3. .data
  4. mas db 0,8,7,6,5,4,3,2,1,9
  5. .code
  6. main:
  7. mov ax,@data
  8. mov ds,ax
  9. xor ax,ax ;обнуление ax
  10. mov cx,0 ;значение cx
  11. mov si,0 ;индекс начального элемента в cx
  12. mov dh,mas[si];
  13. mov bh,mas[si+9]
  14. go:
  15. inc si
  16. cmp dh,mas[si]
  17. jl next
  18. cmp si,9
  19. je noth
  20. jmp go
  21. next:
  22. cmp mas[si],bh
  23. jae go
  24. mov dx,si
  25. jmp show_first
  26. noth:
  27. mov dl,0
  28. ;вывод на экран
  29. show_first:
  30. add cx,1
  31. cmp cx,1
  32. jne show_last
  33. mov ah,02h ;функция вывода значения
  34. ;из al на экран
  35. add dl,30h ;преобразование числа в символ
  36. int 21h
  37. show_last:
  38. cmp si,8
  39. jl go
  40. mov ah,02h ;функция вывода значения
  41. ;из al на экран
  42. add dl,30h ;преобразование числа в символ
  43. int 21h
  44. exit:
  45. mov ax,4c00h ;стандартный выход
  46. int 21h
  47. end main ;конец программы

Решение задачи: «Немного подкоректировать вывод данных Tasm»

textual
Листинг программы
  1. MODEL small
  2. STACK 256
  3. .data
  4. dbMas   db  10,13,'Massiv:$'
  5. dbInd   db  10,13,'Index:$'
  6. mas db  0,9,7,6,5,4,3,2,0,9
  7. szMas   equ $-mas
  8. .code
  9. main:
  10.     mov ax,@data
  11.     mov ds,ax
  12.  
  13.     mov ah,9
  14.     lea dx,dbMas
  15.     int 21h
  16.  
  17.     xor si,si
  18.     mov cx,szMas
  19.     mov ah,2
  20. @@01:   mov dl,mas[si]
  21.     add dl,'0'
  22.     int 21h
  23.     mov dl,' '
  24.     int 21h
  25.     inc si
  26.     loop    @@01
  27.  
  28.     xor bx,bx
  29.     xor si,si
  30.     xor di,di
  31.     mov cx,szMas-2
  32. @@02:   inc bx
  33.     mov al,mas[bx]
  34.     cmp al,[mas]
  35.     jle @@03
  36.     cmp al,[mas+szMas-1]
  37.     jge @@03
  38. ;А[1]<A[i]<А[10]
  39.     mov si,bx
  40.     or  di,di
  41.     jnz @@03
  42.     mov di,bx
  43. @@03:   loop    @@02
  44.     mov ah,9
  45.     lea dx,dbInd
  46.     int 21h
  47.  
  48.     mov ah,2
  49.     mov dx,di
  50.     add dl,'0'
  51.     int 21h
  52.     mov dl,','
  53.     int 21h
  54.     mov dx,si
  55.     add dl,'0'
  56.     int 21h
  57.  
  58.     mov ax,4C00h
  59.     int 21h
  60. end main ;конец программы

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


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

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

14   голосов , оценка 3.786 из 5

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

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

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