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: AzTruyen.Top

Tags: