Текущий архив: 2004.07.04;
Скачать: CL | DM;
Вниз
i il be back!!!! Найти похожие ветки
← →
rulezz (2004-06-14 22:20) [0]А вот и снова я с асмом!!!!
в чем ошибка, неправильно считае элементы выше главной диагонали матрицы????
.model small
.stack 100h
.data
N DW 2 ;Obrabotka iz 2 v ASCII
BINVV DW ? ;input
ASCII DB 5 DUP("$"),"$" ;exit
sum dw 0
per1 dw ?
per2 dw ?
per3 dw ?
per4 dw ?
per5 dw ?
per6 dw ?
slovo_vivod db "Summa= ","$"
str3 db 10, 13, "Sum of matrix elements upper main diagonal = $"
matr dw 00, 01, 02, 03, 04, 05, 06, 07, 08, 09
dw 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
dw 20, 21, 22, 23, 24, 25, 26, 27, 28, 29
dw 30, 31, 32, 33, 34, 35, 36, 37, 38, 39
dw 40, 41, 42, 43, 44, 45, 46, 47, 48, 49
dw 50, 51, 52, 53, 54, 55, 56, 57, 58, 59
dw 60, 61, 62, 63, 64, 65, 66, 67, 68, 69
dw 70, 71, 72, 73, 74, 75, 76, 77, 78, 79
dw 80, 81, 82, 83, 84, 85, 86, 87, 88, 89
dw 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
.code
.8086 ; This part of the program must run on an 8086
start:
mov ax,@data
mov ds, ax ;set segment register
xor ax,ax
;main
lea dx,str3
mov ah,9
int 21h
call sum_upper
mov ax,4c00h ; terminate program
int 21h
sum_upper proc
mov bx,matr
xor cx,cx
xor ax,ax
.vert_cycle:
mov si,9*2
.hor_cycle:
add ax,[bx+si]
dec si
dec si
cmp si,cx
jg .hor_cycle
add bx,10*2
inc cx
inc cx
cmp cx,9*2
jl .vert_cycle
call print_ax
retn
sum_upper endp
print_ax proc
test ax,ax
jns .no_sign
push ax
mov ah,2
mov dl,"-"
int 21h
neg ax
.no_sign:
mov cx,10
xor bx,bx
.rev_int_cycle:
xor dx,dx
div cx
push dx
inc bx
test ax,ax
jnz .rev_int_cycle
.forw_int_cycle:
pop dx
add dl,"0"
mov ah,2
int 21h
dec bx
jnz .forw_int_cycle
retn
print_ax endp
;------------------------Procedur-OFF---------------------------------
end start
← →
GuAV © (2004-06-14 22:37) [1]
> print_ax proc
>
> test ax,ax
> jns .no_sign
> push ax
> mov ah,2
а где соотв pop -?
← →
имя (2004-06-14 22:40) [2]Удалено модератором
← →
имя (2004-06-14 22:41) [3]Удалено модератором
Страницы: 1 вся ветка
Текущий архив: 2004.07.04;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.035 c