Tài liệu thực hành Vi xử lý BÀI 1: PHẦN MỀM MÔ PHỎNG 8086 MICROPROCESSOR EMULATOR (EMU8086) potx - Pdf 21

Tài liệu thực hành Vi xử lý
Vũ Đức Hòa
Trang 1
BÀI 1: PHẦN MỀM MÔ PHỎNG 8086
MICROPROCESSOR EMULATOR (EMU8086)
 MỤC ĐÍCH
Giúp sinh viên khảo sát các vấn đ ề sau:
 Sử dụ ng phần mềm Emu8086 để mô phỏng hoạt động của vi xử lý 8086.
 THIẾT BỊ SỬ DỤNG
 Máy vi tính.
 Phần mềm Emu8086
1. Giới thiệ u.
Phần mềm Emu8086 là phần mềm cho phép mô phỏng hoạt động của vi
xử lý 8086 bao gồm các câu lệnh cơ bản của 8086, xử lý ngắt mềm, giao tiếp với
thiết bị ngoại vi, …
 Khởi động chương trình
 Start > All Program > emu8086 > emu8086
Tài liệu thực hành Vi xử lý
Vũ Đức Hòa
Trang 2
 Cửa sổ chương trình sau khi khởi động:
Thanh công cụ chuẩn
Vùng không gian soạn thảo
chương trình
 Sử dụ ng thanh công cụ chuẩn:
New: tạo file mới Save: lưu trữ file
Emulate: biên dịch
và thực hiện mô
Open: mở file có
sẵn
Compile: biên

.data
;Khai bao du lieu
.code
main proc
mov ax,@data
mov ds,ax
;Chuong trinh hop ngu
mov ah,4Ch
int 21h
main endp
; Cac chuong trinh con
Ctc1 proc
; Ma lenh cua chuong trinh con
ret
Ctc1 endp
;
End
2. Cơ sở lý
thuyết
2.1. Ngắt 21h
 Hàm 01h: nhập một ký tự từ bàn phím và hiện ký tự nhập ra màn hình. Nếu
không có ký tự nhập, hàm 01h sẽ đợi cho đến khi nhập.
- Gọi: AH = 01h
- Trả về: AL chứa mã ASCII của ký tự nhập
MOV
AH,01h
INT
21h
; AL chứa mã ASCII
c

- Trả về: không có
Chuỗi phải có dạng sau:
- Byte 0: Số byte tối đa cần đọc (kể cả ký tự Enter)
- Byte 1: số byte đã đọc
- Byte 2: lưu các ký tự đọc
.DATA
Msg
DB
101
; Đọc
t

i
đ
a
100 ký tự
DB
?
DB
101
DUP(?)

MOV AH,0Ah
LEA DX,Msg
INT 21h
 Hàm 0Bh: kiểm tra phím nhấn trên bàn phím
Gọi: AH = 0Bh
Trả về: AL = 0FFh nếu có nhấ n phím, AL = 0 nếu không nhấn phím
 Hàm 4Ch: kết thúc chương trình
MOV AH,4Ch

các cờ.
Tài liệu thực hành Vi xử lý
Vũ Đức Hòa
Trang 8
Cửa sổ flags cho phép xem nội dung của các cờ:
- Nhấn nút Run thực thi chương trình và quan sát nội dung các cờ. Giải
thích.
- Bài 1.2: Thực hiện chương trình cộng 2 số và kiểm tra nội dung các
cờ: CF, ZF, SF, OF, PF, AF. Từ đó rút ra kết luận về mục đích của các
cờ này.
- 0FFh + 01h
- 0FFh + 10h
- 40h + 55h
- 22h + 8Fh
Tài liệu thực hành Vi xử lý
Vũ Đức Hòa
Trang 9
- 99h + 7Ch
- Bài 1.3: Thực hiện lệnh nhân giữa 15h và 41h, 154h và 289Ah.
- Bài 1.4: Thực hiện lệnh chia giữa 5623h và 14h, 3219154h và 9Ah.
- Bài 1.5: Thực hiện lệnh dịch trái 1 bit, 2 bit, 3 bit giá trị 25h.
- Bài 1.6: Thực hiện lệnh quay trái 1 bit, 2 bit, 3 bit giá trị 25h.
- Bài 1.7: Thực hiện lệnh quay trái kết hợp với cờ carry 1 bit, 2 bit, 3 bit
giá trị 25h.
- Bài 1.8: Thực hiện lệnh dịch phải 1 bit, 2 bit, 3 bit giá trị 25h.
- Bài 1.9: Thực hiện lệnh quay phải 1 bit, 2 bit, 3 bit giá trị 25h.
- Bài 1.10: Thực hiện lệnh quay phải kết hợp với cờ carry 1 bit, 2 bit, 3
bit giá trị 25h.
- Bài 1.11: Sử dụng lệnh IN để nhập dữ liệu và lệnh OUT để xuất dữ
liệu ra thiết bị ngoại vi có đị a chỉ 110. Chú ý thêm vào chuỗi

21h
main endp
Vũ Đức Hòa
Trang 10
Tài liệu thực hành Vi xử lý
;
End
 Bài 1.13: Bỏ dấu $ ở cuối chuỗi Hello, thực hiện lại chương trình và nhận
xét kết quả.
 Bài 1.14: Thực hiện giống như bài 1.12 nhưng thực hiện liên tục cho đến
khi nhấn một phím bất kỳ trên bàn phím thì dừng. Gợi ý: dùng hàm 0Bh
để kiểm tra phím nhấn, nếu có nhấn phím thì kết thúc chương trình.
.model small
.stack 100h
.data
msg db 'Hello$'
.code
main proc
mov
ax,@data
mov
ds,ax
mov
ah,09h
;
Xu

t
chuỗi
ra

.data
msg db 'Hello$'
.code
main proc
mov
ax,@data
mov
ds,ax
mov
ah,08h
;
Nh

p
ký tự từ bàn phím
int
21h
Vũ Đức Hòa
Trang 12
Tài liệu thực hành Vi xử lý
push ax ; Lưu ký tự vừa
nh

p
mov ah,02h ;
Chuy

n to

độ

> ‘z’ thì không
ph

i

cmp al,'z'
;
chữ
thường
ja next
sub al,20h ;
Chuy

n
từ chữ thường -> hoa
next:
 Bài 1.18: Nhập liên tục các ký tự, xuất ra màn hình ở dạng chữ hoa và
kết thúc chương trình khi nhấn phím ESC. Gợi ý: sau khi nhập thì
kiểm tra ký tự vừa nhập, nếu là ESC thì thoát (mã ASCII của phím
ESC là 27 hay 1Bh).
cmp al,27
je exit
Vũ Đức Hòa
Trang 13
Tài liệu thực hành Vi xử lý

exit:
mov ah,4Ch
int 21h
 Bài 1.19: Dùng hàm 02h của ngắt 21h để xuất chuỗi:

l
l
o
 Bài 1.21: Xuất chuỗi ‘Hello’ theo đường chéo như hình vẽ bắt đầu tại
hàng 1, cột 1.
H
e
l
l
o
 Bài 1.22: Xuất chuỗi ‘Hello’ theo đường chéo như hình vẽ bắt đầu tại
hàng 1, cột 40.
H
e
l
l
o
 Bài 1.23: Di chuyển ký tự ‘A’ theo chiều ngang từ trái sang phải bắt
đầu tại hàng 1, cột 1 và kết thúc tại hàng 1, cột 40.
.model small
.stack 100h
.data
.code
main proc
Vũ Đức Hòa
Trang 15
Tài liệu thực hành Vi xử lý
mov
dl,' '
;

cmp
dl,41
;
Đến
c

t
41 thì dừng
jne
lap
exit:
mov
ah,4Ch
int
21h
mov ax,data
mov ds,ax
lap:
mov dh,1
mov dl,1 ; Hàng 1,
c

t
1
mov ah,02h ;
G

i
hàm 02h
c

;
để
xu

t
ký tự
int
21h
pop
dx
call delay ;
T

o
thời gian
tr

mov ah,02h
int 10h
push dx
Vũ Đức Hòa
Trang 16
Tài liệu thực hành Vi xử lý
main endp
delay proc
push cx
mov cx,0fh
loop $
pop cx
ret

vẽ, bắt dầu tại hàng 1, cột 1.
Hàng 1, cột 1
Hàng 1, cột 10
Hàng 10, cột 1
Hàng 10, cột 10
Hàng 20, cột 1
 Bài 1.33: Nhập một chuỗi từ bàn phím và xuất chuỗi ra màn hình bằng
cách dùng hàm 02h của ngắt 21h.
.model
small
.stack
10h
.data
msg db
101
;
Chuỗi

t

i
đ
a
100 ký tự
db
?
;
Số
ký tự thực
t

V

trí lưu ký tự
nh

p
lap:
mov dl,msg[si]
cmp dl,13 ; Phím Enter thì
k
ế
t
thúc
je exit
mov ah,02h
int 21h
inc si
jmp lap
exit:
mov ah,4Ch
int 21h
main endp
end main
 Bài 1.34: Thay giá trị ban đầu củ a SI tại dòng in đậm trong bài 1.33
bằng giá trị 0, thực thi chương trình và quan sát kết quả.
 Bài 1.35: Nhập một chuỗi từ bàn phím và xuất chuỗi ra màn hình bằng
cách dùng hàm 09h của ngắt 21h.
Lưu ý là hàm 09h dùng để xuất chuỗi trong đó chuỗi bắt buộc phải kết
thúc bằng ký tự $ nên phải thêm ký tự này vào cuối chuỗi trước khi xuất.
.model small

cuối chuỗi
mov msg[si],al
mov
ah,09h
;
G

i
hàm 09h
xu

t
chuỗi
lea
dx,msg
add
dx,2
int
21h
exit:
mov ah,4Ch
int 21h
main endp
end main
 Bài 1.36: Bỏ dòng in đậm trong bài 1.35, thực thi chương trình và quan
sát kết quả.
 Bài 1.37: Thực hiện bài 1.32 nhưng thay ký tự ‘A’ bằng chuỗi ‘LAP
TRINH HOP NGU’. Gợi ý: Thay thế hàm 02h trong bài 1.32 bằng
hàm 09h (thêm ký tự $ vào cuối chuỗi).


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status