Chào các bạn! Vì nhiều lý do từ nay Truyen2U chính thức đổi tên là Truyen247.Pro. Mong các bạn tiếp tục ủng hộ truy cập tên miền mới này nhé! Mãi yêu... ♥

Tinh bieu thuc (asm C++)

Bài 5

;-----------------------------------------

; Tính biểu thức nEi=1 i

;-----------------------------------------

Phân công nhiệm vụ :

-      Ngôn ngữ C++:

·         Nhận N,

·         Gọi chương trình con tính  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

Cách 1: Hàm Assembly không đối (N khai báo biến toàn cục)

Tệp C++:

#include <iotream.h>

#include <conio.h>

int N;

extern int TONG();

void main(void)

{

                        clrscr();

                        cout<<”

Hay vao n : “; cin>>N;

                        cout<<”

Tong tu 1 den “<<N<<” la : “<<TONG();

                        getch();

}

Tệp Assembly:

.MODEL large

.DATA

 EXTRN  _N:word

.CODE

 PUBLIC @TONG$qv

@TONG$qv  PROC

                        mov  cx,_N                ; cx = N

                        mov  ax,cx                 ; ax = N

                        dec    cx                      ; cx= N-1

    L1:

                        add   ax,cx                 ; ax = tổng   

                        loop  L1

    L2:

                        ret

@TONG$qv  ENDP

                        END

Cách 2: Hàm Assembly có 1 đối (N là tham số thực)

Tệp C++:

#include <iotream.h>

#include <conio.h>

extern int TONG(int i);

void main(void)

{

                        int  N;

                        clrscr();

                        cout<<”

Hay vao N : “; cin>>N;

                        cout<<”

Tong tu 1 den ”<<N<<” la : “<<TONG(N);

                        getch();

}

Tệp Assembly:

.MODEL large

.CODE

 PUBLIC @TONG$qi

@TONG$qi  PROC

                        push BP

                        mov  BP,SP

                        mov  cx,[BP+6]        ; cx = a (lấy giá trị n trong stack đưa vào cx)

                        mov  ax,cx                 ; ax = N

                        dec    cx                      ; cx= N-1

    L1:

                        add    ax,cx                ; ax = tổng   

                        loop   L1

    L2:

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

                        ret

@TONG$qi  ENDP

                        END

Bạn đang đọc truyện trên: Truyen247.Pro

Tags: