Похожие презентации:
Внешний ассемблер (макс+копир)
1. Задача
Создать массив M[1..5]. Скопировать всеего элементы в массив D и найти в
массиве максимум.
2.
ФайлUnit1.cpp
#include <stdio.h>
#include <conio.h>
#include <windows.h>
extern "C" _stdcall MAXMAS(int *, int *);
const n=5;
int main()
{
int m[n]={1,3,5,2,4},r[n];
printf("%d\n",(int *)MAXMAS(m, r));
for (int i=0;i<n;i++)
printf("%d ",r[i]);
getch();
ExitProcess(0);
return 0;
}
3.
Файл findmax+.asm.386P
PUBLIC MAXMAS; процедура будет вызываться из внешнего модуля
.MODEL FLAT, stdcall ; плоская модель
_TEXT SEGMENT DWORD PUBLIC USE32 'CODE'
; процедура нахождения максимума
MAXMAS PROC
PUSH EBP
MOV EBP, ESP
MOV ESI, DWORD PTR [EBP+08H] ; исходный массив [EBP+08Н]
MOV EDI, DWORD PTR [EBP+0CH]
MOV ECX, 5
c1: mov eax, [esi]
mov [edi], eax
add esi,4
add edi,4
loop c1
4.
MOV ESI,DWORD PTR [EBP+08H]mov eax, [esi]
MOV ECX,5
a1: CMP eAX,[ESI]
jge a2
mov eax, [esi]
a2: add esi,4
loop a1
POP EBP
RET 12
MAXMAS ENDP
_TEXT ENDS
END
Программирование