Tải bản đầy đủ (.pdf) (12 trang)

HƯỚNG DẪN THỰC HÀNH MÔ PHỎNG VI XỬ LÝ DÙNG EMU 8086 ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (385.86 KB, 12 trang )

Tài liêu thực hành Vi xử lý

Nguyễn Anh Dũng - Khoa Điện Tử Đại Học Công Nghiệp Hà Nội
1

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 các thiết bị ngoại vi…
Khởi động chương trình:

Hình 1.1 Khởi động chương trình Emu8086
PHẦN MỀM MÔ PHỎNG 8086
MICROPROCESSOR EMULATOR 8086
(EMU8086)

Tài liêu thực hành Vi xử lý

Nguyễn Anh Dũng - Khoa Điện Tử Đại Học Công Nghiệp Hà Nội
2



Hình 1.2 Cửa sổ chương trình sau khi khởi động



Hình 1.3 Thanh công cụ chuẩn
Các thao tác trên thanh công cụ chuẩn cũng có thể được thực hiện thông qua menu
File và menu Emulator.
Tạo và thực hiện chương trình.
Nhấn
[
[[
[New
NewNew
New]
]]
]
trên thanh công cụ sẽ xuất hiện cửa sổ chọn loại file.

Tài liêu thực hành Vi xử lý

Nguyễn Anh Dũng - Khoa Điện Tử Đại Học Công Nghiệp Hà Nội
3


Hình 1.4 Cửa sổ chọn loại file
Chương trình của chúng ta thường có dạng .COM hoặc .EXE do đó ta thường chọn
file dạng .COM hoặc .EXE
Nhấn phím
[
[[
[

OK

OKOK
OK

]
]]
] cửa sổ soạn thảo của chương trình sẽ xuất hiện
Tài liêu thực hành Vi xử lý

Nguyễn Anh Dũng - Khoa Điện Tử Đại Học Công Nghiệp Hà Nội
4


Hình 1.5 cửa sổ soạn thảo chương trình
Sau khi soạn thảo xong chương trình hợp ngữ, ấn vào nút Emulate để biên dịch và
mô phỏng chương trình.
Sau khi biên dịch nếu có lỗi cửa sổ thông báo lỗi sẽ xuất hiện.

Tài liêu thực hành Vi xử lý

Nguyễn Anh Dũng - Khoa Điện Tử Đại Học Công Nghiệp Hà Nội
5


Hình 1.6 Cửa sổ thông báo lỗi
Nhấn [
[[
[

close
closeclose

close

]
]]
] để quay về cửa sổ soạn thảo để sửa lại lỗi.
Trong trường hợp không có lỗi EMU8086 sẽ mở thêm 2 cửa sổ: Cửa sổ chương trình
và cửa sổ mô phỏng.
Chương trình gốc:

Hình 1.7 Cửa sổ chương trình gốc

Tài liêu thực hành Vi xử lý

Nguyễn Anh Dũng - Khoa Điện Tử Đại Học Công Nghiệp Hà Nội
6


Hình 1.8 Cửa sổ mô phỏng
Chương trình mô phỏng có 2 chế độ là chạy từng lệnh và chạy tất cả các lệnh.
Nếu muốn chạy từng lệnh nhấn phím
[
[[
[

Single step
Single stepSingle step
Single step

]
]]

] hoặc ấn phím nóng F8
F8F8
F8
Nếu muốn chạy từng lệnh nhấn phím
[ Run ]
[ Run ][ Run ]
[ Run ]

hoặc ấn phím nóng Shift + F8
Shift + F8Shift + F8
Shift + F8
Tài liêu thực hành Vi xử lý

Nguyễn Anh Dũng - Khoa Điện Tử Đại Học Công Nghiệp Hà Nội
7

Ch ế độ chạy
tất cả lệnh

Chế độ chạy
từng lệnh

Hình 1.9 Hướng dẫn chạy lệnh
Tùy thuộc vào yêu cầu của chương trình chúng ta có thể xem nội dung của stack,
flags…

2. MỘT SỐ CHƯƠNG TRÌNH
a. Một số hàm thường dùng đơn giản.
Hàm 1


Vào một phím
Vào AH = 1
Ra: AL = mã ASCII nếu một phím ký tự được ấn
= 0 Nếu một phím điều khiển hay chức năng được ấn.


Hàm 2

Hiển thị một ký tự hay thi hành một chức năng điều khiển
Vào: AH = 2
DL = mã ASCII của ký tự hiển thị hay điều khiển.
Ra: AL = mã ASCII của ký tự hiển thị hay điều khiển.
Tài liêu thực hành Vi xử lý

Nguyễn Anh Dũng - Khoa Điện Tử Đại Học Công Nghiệp Hà Nội
8


Hàm 9

Hiển thị một chuỗi
Vào: AH = 9
DX = Địa chỉ offset của chuỗi cần hiển thị, chuỗi phải kết thúc bằng ký tự $
Ra: Không

Hàm 4CH

Thoát khỏi chương trình
Vào: AH = 4CH
Ra: Không


b. Một số ví dụ
Ví dụ 1:
Viết chương trình hiển thị “welcome to assembly language…” lên màn hình.
Bài làm
.model small
.stack 100h
.data
Mess DB ‘welcome to assembly language… $’
CRLF DB 10,13,’$’
.Code
Main Proc
; khởi đầu đoạn DS
Mov AX,@Data
Mov DS,AX
Mov ES,AX ; Nếu cần
; Hàm hiển thị chuỗi ký tự lên màn hình
Mov AH,9
Lea DX,Mess
Int 21h
; Thoát khỏi chương trình
Mov AH,4CH
Int 21h
Main Endp
End Main

Tài liêu thực hành Vi xử lý

Nguyễn Anh Dũng - Khoa Điện Tử Đại Học Công Nghiệp Hà Nội
9


Ví dụ 2:
Nhập vào 2 số có tổng nhỏ hơn 10, tính tổng và hiển thị lên màn hình.
Bài làm

.model small
.stack 100h
.data
Mess1 DB ‘Nhap vao so thu nhat… $’
Mess2 DB ‘Nhap vao so thu hai… $’
Mess3 DB ‘Tong hai so vua nhap la… $’
CRLF DB 10,13,’$’
.Code
Main Proc
; khởi đầu đoạn DS
Mov AX,@Data
Mov DS,AX
Mov ES,AX ; Nếu cần
; Hàm hiển thị chuỗi ký tự lên màn hình
Mov AH,9
Lea DX,Mess1
Int 21h
; Hàm nhập vào số thứ nhất
Mov AH,1
Int 21h ; Mã ASCII nằm trong AL
Mov BL,AL ; lưu AL vào BL
; Hàm xuống dòng, hiện thông báo nhập số thứ hai
Mov AH,9
Lea DX,CRLF
Int 21h

; Hiển thị dòng thông báo thứ 2
Lea DX,Mess2
Int 21h
; Hàm nhập vào số thứ hai
Mov AH,1
Int 21h ; Mã ASCII nằm trong AL
Tài liêu thực hành Vi xử lý

Nguyễn Anh Dũng - Khoa Điện Tử Đại Học Công Nghiệp Hà Nội
10

ADD BL,AL ; BL = BL + AL (Tính tổng)
SUB BL,30H ; Trừ tổng để lấy mã ASCII
; Hàm xuống dòng,
Mov AH,9
Lea DX,CRLF
Int 21h
; Hàm xuống dòng, hiện thông báo nhập số thứ hai
Mov AH,9
Lea DX,Mess3
Int 21h
; Hàm hiển thị một ký tự
Mov AH,2
Mov DL,BL
Int 21h
; Thoát khỏi chương trình
Mov AH,4CH
Int 21h
Main Endp
End Main


Ví dụ 3:
Giả thiết thanh ghi AX có dạng sau:

Thực hiện chương trình chuyển AX thành dạng sau

Ví dụ trước chương trình AX = 1234h.
Sau chương trình AX= 4321h.
Bài làm

.model small
.stack 100h
.data
.Code
Main Proc
Tài liêu thực hành Vi xử lý

Nguyễn Anh Dũng - Khoa Điện Tử Đại Học Công Nghiệp Hà Nội
11

; khởi đầu đoạn DS
Mov AX,@Data
Mov DS,AX
Mov ES,AX ; Nếu cần

Mov CL,8
Rol AX,CL ; đổi nội dung 2 thanh ghi AH và AL
; Xchg AH,AL
Mov Cl,4
Rol AH,cl

Rol AL,cl

; Thoát khỏi chương trình
Mov AH,4CH
Int 21h
Main Endp
End Main

Ví dụ 4:
Nhập vào một số n < 10 bất kỳ. Tính N! kết quả được lưu trong BX
Bài làm:

.model small
.stack 100h
.data
Mess1 DB ‘Nhap vao so muon tinh… $’
CRLF DB 10,13,’$’
.Code
Main Proc
; khởi đầu đoạn DS
Mov AX,@Data
Mov DS,AX
Mov ES,AX ; Nếu cần
; Hàm hiển thị chuỗi ký tự lên màn hình
Mov AH,9
Tài liêu thực hành Vi xử lý

Nguyễn Anh Dũng - Khoa Điện Tử Đại Học Công Nghiệp Hà Nội
12


Lea DX,Mess1
Int 21h
; Hàm nhập vào số thứ nhất
Mov AH,1
Int 21h ; Mã ASCII nằm trong AL

Mov BL,AL ; lưu AL vào BL
And BL,0Fh ; Chuyển BL sang dạng số
; SUB BL,30H
Mov AX,1
Xor CX,CX
Mov CL,BL ; chuyển số vào CX để thực hiện tính giai thừa
Nhan:
Mul CX
Loop Nhan ; DXAX chua N!
Mov BX,AX
; Thoát khỏi chương trình
Mov AH,4CH
Int 21h
Main Endp
End Main



×