bai tap 2
BÀI 2. Lập trình cho chế độ thăm dò.
a/ Dữ liệu được nhập vào PA (7bit); PB (8bit); cờ nối vào PA0. Trung bình cộng xuất PC. Giả sử PA có địa chỉ 310h.
• Model Small
• Stack 100
• Data
PA EQU 310h
PB EQU 311h
PC EQU 312h
CWR EQU 313h
CW EQU 92h
• Code
MAIN Proc
MOV AX, @Data ; Khởi đầu thanh ghi DS trong đoạn dữ liệu
MOV DS, AX
MOV AL, CW ; PA, PB=I; PC=0
OUT CWR, AL
KT: IN AX, PA ; đọc dữ liệu từ PA vào AX
AND AX, 01h
CMP AX, 0 ; so sánh AX và 0
JE KT ; nếu AX=0 thì quay trở lại vòng lặp KT
IN AX, PA ; đọc dữ liệu từ PA vào AX
SHR AX, 1 ; dịch phải AX 1 lần
MOV BX, AX ; chuyển AX vào BX
IN AX, PB ; đọc dữ liệu từ PB vào AX
ADD AX, BX ; AX+BX rồi lưu KQ vào AX
SHR AX, 1 ; chia đôi AX, được trung bình cộng
OUT PC, AX ; đưa dữ liệu TBCộng từ AX ra cổng PC
RA: MOV AH, 4CH
INT 21h
Main Endp
END MAIN
b/ Dữ liệu được nhập vào PA (7bit); PB (8bit); cờ nối vào PA7. Trung bình cộng xuất PC. Giả sử PA có địa chỉ 310h.
• Model Small
• Stack 100
• Data
PA EQU 310h
PB EQU 311h
PC EQU 312h
CWR EQU 313h
CW EQU 92h
• Code
MAIN Proc
MOV AX, @Data ; Khởi đầu thanh ghi DS trong đoạn dữ liệu
MOV DS, AX
MOV AL, CW
OUT CWR, AL
KT: IN AX, PA ; đọc dữ liệu từ PA vào AX
AND AX, 80h
CMP AX, 0
JE KT
IN AX, PA ; đọc dữ liệu từ PA vào AX
AND AX, 7Fh
MOV BX, AX ; chuyển AX vào BX
IN AX, PB ; đọc dữ liệu từ PB vào AX
ADD AX, BX ; AX+BX rồi lưu KQ vào AX
SHR AX, 1 ; chia đôi AX, được trung bình cộng
OUT PC, AX ; đưa dữ liệu TBCộng từ AX ra cổng PC
RA: MOV AH, 4CH
INT 21h
Main Endp
END MAIN
Bạn đang đọc truyện trên: AzTruyen.Top