Немного подкоректировать вывод данных Tasm - Assembler
Формулировка задачи:
Помогите с такой проблемой. Есть код на тасме. он выводит индексы второго и предпоследнего элемнта массива, как сделать, чтобы он их через запятую выводил и перед этим начальный массив вывел? Я в асме 0, но задание нужно сделать
MODEL small STACK 256 .data mas db 0,8,7,6,5,4,3,2,1,9 .code main: mov ax,@data mov ds,ax xor ax,ax ;обнуление ax mov cx,0 ;значение cx mov si,0 ;индекс начального элемента в cx mov dh,mas[si]; mov bh,mas[si+9] go: inc si cmp dh,mas[si] jl next cmp si,9 je noth jmp go next: cmp mas[si],bh jae go mov dx,si jmp show_first noth: mov dl,0 ;вывод на экран show_first: add cx,1 cmp cx,1 jne show_last mov ah,02h ;функция вывода значения ;из al на экран add dl,30h ;преобразование числа в символ int 21h show_last: cmp si,8 jl go mov ah,02h ;функция вывода значения ;из al на экран add dl,30h ;преобразование числа в символ int 21h exit: mov ax,4c00h ;стандартный выход int 21h end main ;конец программы
Решение задачи: «Немного подкоректировать вывод данных Tasm»
textual
Листинг программы
MODEL small STACK 256 .data dbMas db 10,13,'Massiv:$' dbInd db 10,13,'Index:$' mas db 0,9,7,6,5,4,3,2,0,9 szMas equ $-mas .code main: mov ax,@data mov ds,ax mov ah,9 lea dx,dbMas int 21h xor si,si mov cx,szMas mov ah,2 @@01: mov dl,mas[si] add dl,'0' int 21h mov dl,' ' int 21h inc si loop @@01 xor bx,bx xor si,si xor di,di mov cx,szMas-2 @@02: inc bx mov al,mas[bx] cmp al,[mas] jle @@03 cmp al,[mas+szMas-1] jge @@03 ;А[1]<A[i]<А[10] mov si,bx or di,di jnz @@03 mov di,bx @@03: loop @@02 mov ah,9 lea dx,dbInd int 21h mov ah,2 mov dx,di add dl,'0' int 21h mov dl,',' int 21h mov dx,si add dl,'0' int 21h mov ax,4C00h int 21h end main ;конец программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д