Двумерный массив геометрический прогрессия - Assembler
Формулировка задачи:
name "matrix" org 100h m dw 4 n dw 5 nabor db 1h,2h,3h,4h,5h prog: lea si,nabor mov cx,n stroki: mov ax,[si] inc si call print_ax mul [si] mov [si], ax mov ah,02h mov dl,' ' int 21h loop stroki; call print_nl dec m; cmp m,0 jne prog ret print_ax proc cmp ax,0 jne print_ax_r push ax mov al, '0' mov ah, 0eh int 10h pop ax ret print_ax_r: pusha mov dx, 0 cmp ax, 0 je pn_done mov bx, 10 div bx call print_ax_r mov ax, dx add al, 30h mov ah, 0eh int 10h jmp pn_done pn_done: popa ret endp print_nl proc push ax push dx mov ah, 2 mov dl, 0Dh int 21h mov dl, 0Ah int 21h pop dx pop ax ret endp
Решение задачи: «Двумерный массив геометрический прогрессия»
textual
Листинг программы
model tiny .code org 100h m equ 4 n equ 5 begin: lea bx,nabor mov cx,m xor di,di lp1: push cx mov cx,n xor si,si lp2: mov ax,[bx+di] mul word ptr[bx+si] mov [bx+di+2*n],ax add si,2 add di,2 loop lp2 pop cx loop lp1 mov cx,n lp3: mov si,bx push cx mov cx,m+1 lp4: mov ax,[si] call outAX add si,2*n loop lp4 call outNL pop cx add bx,2 loop lp3 xor ax,ax int 16h ret outAX: push cx xor cx,cx mov di,10 out1: xor dx,dx div di or dx,'0' push dx inc cx or ax,ax jne out1 mov ax,20h out2: push ax inc cx cmp cx,6 jnz out2 out3: pop ax int 29h loop out3 pop cx ret outNL: mov al,0dh int 29h mov al,0ah int 29h ret nabor dw 1,2,3,4,5 dw m*n dup(?) end begin
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д