Sử dụng tham số trung gian
Mục đích-yêu cầu:
- Thông qua việc thực hiện các phép toán cộng để sử dụng các thanh ghi, vị trí ô nhớ trên RAM và ngăn xếp.
- Sử dụng được các thanh ghi, vị trí ô nhớ trên RAM và ngăn xếp trong lập trình vi xử lý.
Kiến thức nền:
Các tham số đưa vào chương trình có thể thông qua trong 3 cách:
? Các thanh ghi CPU.
? Các vị trí RAM.
? Ngăn xếp.
Trong ví dụ dưới đây sử dụng 3 cách giải khác nhau để cộng 2 số.
Chương trình:
; Nhảy qua bảng thông số ----------------------------------------------------
JMP Start
DB 00
DB 00
Start:
MOV AL,5 ;giữ 1 byte của RAM tại địa chỉ 02
MOV BL,4 ;giữ 1 byte của RAM tại địa chỉ 03
CALL 30 ;gọi thủ tục thứ nhất
;sử dụng vị trí RAM để đưa các tham số vào trong 1 thủ tục
MOV AL,3
MOV [02],AL
MOV BL,1
MOV [03],BL
CALL 40 ;gọi thủ tục thứ hai
;sử dụng ngăn xếp để đưa tham số vào 1 thủ tục
MOV AL,7
PUSH AL
MOV BL,2
PUSH BL
CALL 60 ;gọi thủ tục thứ ba
POP BL
POP AL
JMP Start ;trở về nhãn Start để thực hiện
;Thủ tục để cộng 2 số (cách 1) -----------------------------------------------
;Các tham số thông qua trong thủ tục sử dụng AL và BL
;Kết quả đưa vào AL
;Ðây là phương pháp đơn giản nhưng không hay lắm vì có nhiều thamsố
ORG 30 ;bắt đầu tại địa chỉ 30
ADD AL,BL ;cộng BL với AL, kết quả lưu ;trong AL
RET ;kết thúc chương trình con, quay trở về từ thủ tục
;Thủ tục để cộng 2 số (cách 2) -----------------------------------------------
;Các tham số thông qua trong thủ tục sử dụng vị trí RAM
;Kết quả lưu vào vị trí RAM
;Phương pháp này thì phức tạp hơn và không giới hạn số tham số
ORG 40 ;bắt đầu tại địa chỉ 40
PUSH CL ;lưu các thanh ghi và các cờ vào ngăn xếp
PUSH DL
PUSHF
MOV CL,[02] ;tìm nạp tham số từ RAM
MOV DL,[03] ;tìm nạp tham số từ RAM
ADD CL,DL
MOV [02],CL ;cất kết quả trong RAM
POPF ;khôi phục lại thanh ghi ban đầu và giá trị cờ
POP DL
POP CL
RET ;kết thúc chương trình con
;Thủ tục cộng 2 số (cách 3) ---------------------------------------------------
;Số được cộng bên trong ngăn xếp
;Lấy tham số ra ngăn xếp
;Thực hiện việc cộng
;Ðẩy kết quả vào lại ngăn xếp
;Phần lớn thủ tục gọi trong thời gian thực đều được sử dụng ngăn xếp
ORG 60 ;mã bắt đầu tại địa chỉ 60
POP DL
POP BL
POP AL
ADD AL,BL ;đặt trở lại ngăn xếp như trước đó
PUSH AL
PUSH DL
END ;kết thúc chương trình
;-----------------------------------------------------------------------------------
Tải file phim về ở đây .