PUBLIC @CSC8qi @CSC$qi PROC

Một phần của tài liệu Bài tập mẫu NN assembly (Trang 26 - 29)

@CSC$qi PROC

push BP mov BP,SP

mov cx,[BP+ó] ; cx =n (lây giá trị n từ stack)

mov bx, đ ;bx=d

mOV ax, uÍ ;ax =ul mov dx,ax ; dx =ul

dec cx ¡cx=n-l

LI:

add dx,bx ; dx =U¡

add ax,dx ;aX= (tổng các thành phần từ u¡ đến ¡¡) + tị loop LÍ

pop BP ; Hồi phục giá trị của BP

Tet

@CSC$%qi ENDP END

Cách 3: Hàm Assembly có 2 đối (n, d là tham số thực - cất vào satck, còn u1 vẫn là biến toàn cục)

Têp C``:

#include <Iotream.h> #include <comio.h> intul;

extern int CSC(mt 11,int 12); void main(void)

{

int n,d;

clrscr();

cout<<”nHay vao n : “; cin>>n; cout<<”\nHay vao d : “; cin>>d; cou(t<<”nHay vao ul : “; cin>>ul;

cout<<”nTong cap so cong la : “<<CSC(n,d); getchQ; } Têp Assembly: .MODEL large .DATA EXTRN _ulI:word

.CODE

PUBLIC @CSCSqii @CSC$qii PROC

push BP

mov BP,SP

mov cx,[BP+ó] ; cx =n (lấy giá trị n từ stack) mov bx,[BP+8] ; bx = d (lấy giá trị d từ stack)

mOV ax, uÏ ;ax =ul

mov dx,ax ; dx =ul

dec cx ;€x=n-Ï

LI:

add dx,bx ; dx =u¡

add ax,dx ;aX= (tống các thành phần từ u¡ đến ¡¡) + tị loop LÍ

pop BP ; Hồi phục giá trị BP

Tet

@CSC$qii ENDP END

Cách 4: Hàm Assembly có 3 đối (n, đ và u1 đều là tham số thực - cất vào satck)

ˆ +

Tộệp C—:

#include <Iotream.h> #include <conio.h>

extern int CSC(mt ¡1,int 12,int 13); void main(void)

{

¡nt n,d,ul; clrscr(Q;

cou(<<”nHay vao n : “; cin>>n; cout<<”\nHay vao d : “; cin>>d; cou(t<<”nHay vao ul : “; cin>>ul;

cout<<”nTong cap so cong la : “<<CSC(n,d,ul); getchQ; } Têp Assembly: .MODEL large .CODE PUBLIC @CSCSqiii @CSC$dqii PROC push BP mov BP,SP

mov bx,[BP+8] ;bx=d (lây giá trị d từ stack) mov ax,[BP+I0] ; ax =ul (lây từ stack)

mov dx,ax ; dx =ul

dec cx ;Cx=n-l

LI:

add dx,bx ; dx =U¡

add ax,dx ;aX= (tống các thành phần từ u¡ đến ¡¡) + tị

loop LI

pop BP ; Hồi phục giá trị BP Tet Tet

@CSC$diii ENDP

Bài 7

; Tổng cấp số nhân khi biết n (số lượng thành phần)| ; q (công bội) và ul (giá trị thành phân đâu tiên) | Phân công nhiệm vụ :

— Ngôn ngữ C`”: s« Nhậnn,q và ul,

« - Gọi chương trình con tính tổng cấp số nhân do Assembly viết,

„ _ Hiện kết quá lên màn hình.

— Ngôn ngữ Assembly : Chương trình con tính tổng cấp số nhân Cách 1: Hàm Assembly không đối (n,q và u1 khai báo biến toàn cục)

^ + Têp C—: Têp C—: #include <Iotream.h> #include <comio.h> in n,q,ul; extern int CSNQ; void main(void) { clrscr(Q);

cout<<”\nHay vao n : “; cin>>n; cout<<”nHay vao q : “; cin>>dq; cout<<”\nHay vao ul : “; cin>>ul;

cout<<”nTong cap so cong la : “<<CSNQ; getchQ; getchQ;

}

Têp Assembly: .MODEL large

.DATA

EXTRN n:word, q:word, u1:word

.CODE

Một phần của tài liệu Bài tập mẫu NN assembly (Trang 26 - 29)

Tải bản đầy đủ (PDF)

(38 trang)