АК
Анна Колосова

Ребята выручите пожалуйста) Нужно проосто чуть напистаь в программе, она сама работает... Там нужно написать макрокоманду.

Пожалуйста. Получается чтто саму подпрограмму нужно вызвать, придать параметры, если их нет и получить рез-т. Написать макрокоманду.
.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,, F
IF E F
MOV AX,A
ENDI F
SAME B,, F
IF E F
MOV BX,B
END IF

как нам сказали,просто написать для программы макрокоманду и все....

Спасибо. Я переделываю эту программу,так как она просто напросто ничего не выводит.

Андрей Добров
Андрей Добров

я конечно понимаю, важность макрокоманд, но в данном случае она вообще не нужна, так как call SUM вызывается всего один раз. . ну да насрать
Что вы хотите этим макросом сделать ума не приложу, даже въехать в эту страшную картину

если бы я бы писал, то сделал бы так:

call_sum macro a,b
_ lea bx, a
_ mov cx, b
_ call SUM
endm

а где то в коде:

call_sum A,100h

----------------

а что у вас за тарабарщина то? вы хоть осмысливаете написаное?

ШС
Шухрат Сайдалиев

у вас тасм, какие тут макрокоманды? вы по-русски напишите что вам нужно

Katya
Katya

Это ж где щас ассемблер изучают?

Похожие вопросы
помогите пожалуйста! нужно написать программу
Помогите пожалуйста нужно написать программу на C + +
Ребята выручите пожалуйста! Уже почти год ищу.
ребята помогите пожалуйста! Мне нужна только схема программы!!
Помогите плиз напистаь программу на Си
Нужно написать программу. Помогите, пожалуйста!
Нужно написать программы в паскале! Помогите пожалуйста!!!
Помогите пожалуйста написать программу очень нужно!!!
ребята помогите пожалуйста. нужна срочно программа
ребята помогите программу написать на паскале.