Nghiên cứu Khoa học
VÍ DỤ VỀ CHƯƠNG TRÌNH CON
Trong ngôn ngữ lập trình Assembly việc sử dụng chương trình con, giống như việc sử dụng hàm chức năng trong ngôn ngữ lập trình C. Nó sẽ giúp người lập trình dễ dàng trong việc quản lý chương trình, cũng như sửa lỗi chương trình. Chương trình con sẽ giúp chương trình thực hiện được ngắn gọn hơn, khi phải sử dụng đi sử dụng lại một nội dung công việc. Chẳng hạn như chương trình nhấp số có nhiều chữ số, và xuất số có nhiều chữ số như sau:
.MODEL SMALL
.STACK 100H
.DATA
NHAP DB 13,10,"NHAP SO = $"
TONG DB 13,10,"TONG HAI SO=$"
HIEU DB 13,10,"HIEU HAI SO=$"
TICH DB 13,10,"TICH HAI SO=$"
THG DB 13,10,"THUONG 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
MOV AH,9
LEA DX,TICH
INT 21H
MOV AX,A
MUL B ;AX=AX*B
CALL XUATSO
; TINH THUONG VOI HIEU SOLON/BE, SOLON-BE
MOV AX,A
CMP AX,B
JA A_LON_B
; B>A
MOV AH,9
LEA DX,HIEU
INT 21H
MOV AX,B
SUB AX,A
CALL XUATSO
MOV AH,9
LEA DX,THG
INT 21H
MOV AX,B
MOV DX,0
DIV A
CALL XUATSO
JMP THOAT2
A_LON_B:
MOV AH,9
LEA DX,HIEU
INT 21H
MOV AX,A
SUB AX,B
CALL XUATSO
MOV AH,9
LEA DX,THG
INT 21H
MOV AX,A
MOV DX,0
DIV B
CALL XUATSO
THOAT2:
MOV AH,4CH
INT 21H
; CHUONG TRINH CON KET THUC CT CHINH
NHAPSO PROC
MOV BX,0
LAP:
MOV AH,1 ; AL=ASCII(KI TU)
INT 21H
CMP AL,13
JE THOAT
SUB AL,30H
MOV AH,0
MOV N,AX
MOV AX,10
MUL BX; AX=AX*BX=AHAL
MOV BX,AX
ADD BX,N
JMP LAP
THOAT:
RET
NHAPSO ENDP
XUATSO PROC
MOV BX,10
MOV CX,0
LAP1:
MOV DX,0
DIV BX; AX=AX/BX
PUSH DX
INC CX
CMP AX,0
JNE LAP1
LAP2:
POP DX
ADD DX,30H
MOV AH,2
INT 21H
LOOP LAP2
RET
XUATSO ENDP