Nghiên cứu Khoa học

Cách xây dựng chương trình con trong lập trình Assembly

  • 10/03/2021
  • Nghiên cứu Khoa học

Để thực hiện công việc lặp đi lặp lại nhiều lần trong ngôn ngữ lập trình Assembly ta tiến hành xây dựng các đoạn chương trình con (tương tự như cách viết hàm trong ngôn ngữ lập trình C).

Xây dựng chương trình con bản chất ta đặt một cái tên và khi cần chỉ cần dùng lệnh CALL đưa con trỏ PC đến đúng vị trí thực hiện chương trình con. Và điểm cần lưu ý khi thực hiện chương trình con là luôn có lệnh RET cuối chương trình để quay về đúng vị trí được gọi chương trình con.

Sau đây là ví dụ về chương trình con NHAPSO, XUATSO

.stack 100h
.data
nhap db 13,10," nhap so=$"
tong db 13,10,"tong hai so=$"
hieu db 13,10,"hieu hai so=$"
a dw ?
b dw ?
n dw ?
.code
MOV AX,@DATA
MOV DS,AX

MOV AH,9
LEA DX,NHAP
INT 21H
CALL NHAPSO
MOV A,BX
MOV AH,9
LEA DX,NHAP
INT 21H
CALL NHAPSO
MOV B,BX
; TINH TOAN
MOV AH,9
LEA DX,TONG
INT 21H
MOV AX,A
ADD AX,B
CALL XUATSO
; TINH HIEU
MOV AH,9
LEA DX,HIEU
INT 21H
MOV AX,A
SUB AX,B
CALL XUATSO
JMP KETTHUC


NHAPSO PROC
MOV BX,0
LAP:
MOV AH,1
INT 21H
CMP AL,13
JE THOAT
SUB AL,30H
MOV AH,0
MOV N,AX
MOV AX,10
MUL BX
MOV BX,AX
ADD BX,N
JMP LAP
THOAT:
RET
NHAPSO ENDP
XUATSO PROC
MOV CX,0
MOV BX,10
LAP1:
MOV DX,0; XOA DU
DIV BX
PUSH DX
INC CX
CMP AX,0
JNE LAP1
THOAT1:
POP DX
ADD DX,30H
MOV AH,2
INT 21H
LOOP THOAT1
RET
XUATSO ENDP
KETTHUC:
END

Các tin khác