Ребята выручите пожалуйста) Нужно проосто чуть напистаь в программе, она сама работает... Там нужно написать макрокоманду.
Пожалуйста. Получается чтто саму подпрограмму нужно вызвать, придать параметры, если их нет и получить рез-т. Написать макрокоманду.
.model small
.stack 100h
.data
A db 1,2,3,4,5,6,7,8,9,10
db 11,12,13,4,15,16,17,18,19,20
db 21,22,23,24,25,26,27,28,29,30
db 31,32,33,34,35,36,37,38,39,40
db 41,42,43,44,45,46,47,48,49,50
db 51,52,53,54,55,56,57,58,59,60
db 61,62,63,64,65,66,67,68,69,70
db 71,72,73,74,75,76,77,78,79,80
db 81,82,83,84,85,86,87,88,89,90
db 91,92,93,94,95,96,97,98,99,100
B DW 256 DUP(?)
msg DB 256 dup('$')
.code
;Процедура SUM(X, N, S)
;Параметры передаются в регистрах:
;BX = X - указатель на массив
;CX = N - кол-во элементов массива
;Результат: в регистре DX - сумма элементов массива
SUM proc ; procedure is OK
push ax
push cx
push si
mov si, bx
xor dx, dx ; dx = 0
SUMLoop:
lodsb
cbw
add dx, ax
loop SUMLoop
pop si
pop cx
pop ax
ret
SUM endp
main proc
start:
mov ax,@data
mov ds,ax
lea bx, A
mov cx, 100h
call SUM
mov B, dx ; B will contain our number after sum
mov ax,BX
mov bx,100h
mov cx,0 ; we will use it as counter
fo:
mov dx,0
div bx
add dx,48
push dx
inc cx
cmp ax,0
jne fo
mov bx,offset msg
so:
pop dx
mov[bx],dx
inc bx
loop so
; print result on the screen
mov ah,09
mov dx,offset msg
int 21h
mov ah,4ch ; return to dos!!
int 21h
main endp
end main
Нужно просто написать макрокоманду!В самом простом виде.Для этой подпрограммы,сумму)В институте)ЕСли бы я знала ассемблер,то давно бы уже написала)Спасибо.Я вот добавила,но не знаю правильно или нет....
CALL_SUM A macro A,B,C
mov AX,N
MOV BX,offset A
CALL SUM A
MOV X,AX
ENDM
CALL_SUMA_2 MACRO A,B,C
LOCAL F
SAME A,
IF E F
MOV AX,A
ENDI F
SAME B,
IF E F
MOV BX,B
END IF
как нам сказали,просто написать для программы макрокоманду и все....
Спасибо. Я переделываю эту программу,так как она просто напросто ничего не выводит.