ĐỀ TÀI
Cài đặt và sơ lượt về cách sử dụng phần mền
emu8086 dùng để lập trình hợp ngữ
1
Giáo viên hướng dẫn : Trần Bá Trí
Sinh viên thực hiện :
BÁO CÁO THỰC HÀNH TUẦN 1, TUẦN
2
GIỚI THIỆU:
Bài báo cáo về cách cài đặt và sơ lượt về cách sử dụng phần mền emu8086 dùng để
lập trình hợp ngữ.
I. Cài đặt phần mền emu8086
1 .Các bước thực hiện
- Bước 1: Nhấn vào biểu tượng setup để thực thi chương trình
- Bước 2:
Chọn NEXT
để tiếp tụ
Click chuột vào
biểu tượng setup
của chương trình
Nhấn NEXt
để tiếp tục
- Bước3: chọn NEXT để tiếp tuc
- Bước 4: Chọn đường đẫn để thực thi chương trình sau đó nhấn NEXT để tiếp tục
Nhấn NEXt
để tiếp tục
Nhấn
NEXT để
tiếp
Chọn
NEXT để
tiếp tục
NEXT để
tiếp
tục
- Bước 5: Xác nhận tên emu8086 để chạy
- Bước
6: Tiếp
theo nhấn
INSTALL để bắt đầu quá trình thực hiện
Bước 7: Quá trình thực hiện được diễn ra
Bước 8: Quá trình setup kết thúc
Nhấn
INSTALL
để chạy
Nhấn
FINISH để
quá trình
setup kết thúc
II. Cách chạy chương trình đơn giản
Bước 1: nhấn vào biểu tượng shortcut của chương trình
Bước 2:
-
- Chọn NEW để tiếp theo
- Sau đó chọn COM hoặc EXE để thực hiện chương trình tiếp theo
Sử dụng chuột
Editor hỗ trợ các hành động của chuột sau đây:
Hoạt động của chuột Kết quả
L-Nút bấm trên văn bản Thay đổi vị trí dấu nháy
R-Nút bấm Hiển thị menu chuột phải
L-Button xuống trên lựa chọn, và
kéo
Di chuyển văn bản
Ctrl + L-Button xuống trên lựa chọn,
và kéo
Bản sao văn bản
L-nút bấm bên trái magrin Chọn dòng
L-Nút bấm trên lề trái, và kéo Chọn nhiều dòng
Alt + L-Button xuống, và kéo Chọn cột của văn bản
L-Button nhấp đúp chuột trên văn
bản
Chọn từ dưới con trỏ
IntelliMouse Sip bánh xe chuột Di chuyển các cửa sổ theo chiều dọc
Single click chuột IntelliMouse bánh
xe
Chọn từ dưới con trỏ
Double click chuột IntelliMouse
bánh xe
Chọn dòng dưới con trỏ
Click và kéo thanh splitter Chia nhỏ các cửa sổ vào nhiều quan
điểm hoặc điều chỉnh vị trí hiện tại
splitter
Nhấp đúp chuột vào thanh splitter Chia nhỏ các cửa sổ trong một nửa
thành nhiều quan điểm hoặc Sử dụng
đường cửa sổ nếu đã chia
Soạn thảo phím nóng
Lệnh Tổ hợp phím
Đánh đấu trạng thái …………………Ctrol +F2
Đánh đấu tiếp theo ………………… F2
Đánh đấu đầu tiên ……………………Shift +F2
Bản sao…….…………………………Control + C, Control + Insert
Cắt ……… …………………………Control + X, Shift + Delete, Control +Alt+W
Cắt đường dây ……………………….Control + Y
Cắt câu… ………… Control + Alt + K
Đán………………………………… Control + V, Shift + Insert
Quay lại……………………………….Control + Z, Alt + Backspace
Phần cuối…………………………… Control + End
Tài liệu kết thúc mở rộng………… Control + Shift + End
Phần bắt đầu………………………… Control + Home
Tài liệu bắt đầu mở rộng……………… Control + Shift + Home
Tìm kiếm…………………………… Control + F, Alt + F3
Tìm kiếm tiếp theo…………………….F3
Tìm kiếm từ……………………………Control +F3
……………………………Shift + F3
……………………………Control + Shift + F3
Tìm kiếm và thay thế………………… Control + H, Control + Alt + F3
Đi đến đường đẫn…………………… Control + G
Đi đến chỗ khớp đấu ngoặc……………Control + ]
Chọn tất cả……………………… ……Control + A
Chọn đường đẫn……………… ………Control + Alt + F8
……………….……….Control + Shift + X
Chèn đường đẫn chính xác hơn…….….Control + Shift + N
Chọn thụt lề……………………………Tab
Chọn …………………….Shift + Tab
…… …………………Control + Shift + T
……….……………….Control + Shift + Space
Bật tắt chế độ ghi đè………………………………….Insert
Xóa từ ở cuối…………………………………………Control + Delete
Xóa từ ở đầu………………………………………… Control + Backspace
Biên dịch mã lắp ráp
ra một nơi để lưu các tập tin biên dịch.
sau khi biên dịch thành công, bạn có thể nhấp vào nút thi đua để tải các tập tin biên dịch trong
mô loại mã của bạn bên trong vùng văn bản, và nhấp vào nút biên dịch. bạn sẽ được hỏi cho
phỏng.
tập tin kết quả chỉ thị loại:
# Make_com #
# Make_bin #
# Make_boot #
# Make_exe #
bạn có thể chèn các chỉ thị trong mã nguồn để xác định các loại sản lượng cần thiết cho tập
tin. Chỉ khi trình biên dịch không thể xác định các loại sản lượng tự động và nó khi nó không
thể tìm thấy bất kỳ của các chỉ thị, nó có thể yêu cầu bạn cho loại sản lượng trước khi tạo tập
tin.
có hầu như không có sự khác biệt giữa cách làm .com và .bin được lắp ráp bởi vì những tập tin
này là tập tin nhị phân thô, nhưng. exe tập tin có một tiêu đề đặc biệt trong sự khởi đầu của tập
tin đó được sử dụng bởi hệ điều hành để xác định một số tài sản của thực thi file.
mô tả của các loại tập tin đầu ra:
# make_com # - lâu đời nhất và định dạng đơn giản nhất của một tập tin thực thi, các tập tin
đó được tải với 100h tô (256 bytes). Chọn sạch từ trình đơn mới nếu bạn có kế hoạch để lập
một tập tin COM. ORG 100h trình biên dịch chỉ thị nên được bổ sung trước khi các mã. Thi
luôn bắt đầu từ byte đầu tiên của tập tin. Điều này loại tập tin được chọn tự động nếu org 100h
chỉ thị được tìm thấy trong các mã.
được hỗ trợ bởi hệ điều hành DOS và Windows Command Prompt.
# make_exe # - nâng cao hơn định dạng của một tập tin thực thi. không bị hạn chế bởi kích
thước và số lượng các phân đoạn. stack đoạn cần được quy định trong chương trình .exe bạn
có thể chọn mẫu từ trình đơn mới để tạo ra một chương trình exe đơn giản với các dữ liệu
được xác định trước, ngăn xếp, và các đoạn code.
điểm vào (nơi bắt đầu thực hiện) được xác định bởi một lập trình viên. loại tập tin này được
chọn tự động nếu stack phân khúc được tìm thấy.
được hỗ trợ bởi dos và cửa sổ dấu nhắc lệnh.
# make_bin # - một tập tin thực thi đơn giản. Bạn có thể xác định các giá trị của tất cả các
đăng ký, phân khúc và bù đắp cho khu vực bộ nhớ nơi mà tập tin này sẽ được nạp. Khi tải
"MY.BIN" tập tin vào giả lập nó sẽ tìm một "MY.BINF" tập tin, và tải "MY.BIN" tập tin vào
vị trí quy định tại "MY.BINF" tập tin, đăng ký cũng được thiết lập bằng cách sử dụng thông
tin trong tập tin đó (mở tập tin này trong một trình soạn thảo văn bản để chỉnh sửa hoặc điều
tra).
trong trường hợp giả lập này là không thể tìm thấy "MY.BINF" tập tin, các giá trị đăng ký
hiện hành được sử dụng và "MY.BIN file" được tải tại hiện CS: IP.
thực hiện bắt đầu từ giá trị trong CS: IP.
bin loại tập tin không phải là duy nhất cho giả lập, tuy nhiên các chỉ thị, là duy nhất và sẽ
không hoạt động nếu file. bin được thực hiện bên ngoài của các giả lập bởi vì sản lượng của
họ được lưu trữ trong một file riêng biệt độc lập với mã nhị phân thuần túy.
BINF file được tạo ra tự động nếu lắp ráp tìm thấy bất kỳ chỉ thị sau đây
các chỉ thị có thể được chèn vào bất cứ phần nào của mã nguồn để đăng ký cài sẵn hoặc bộ
nhớ trước khi bắt đầu thực hiện chương trình:
#make_bin#
#LOAD_SEGMENT=1234#
#LOAD_OFFSET=0000#
#AL=12#
#AH=34#
#BH=00#
#BL=00#
#CH=00#
#CL=00#
#DH=00#
#DL=00#
#DS=0000#
#ES=0000#
#SI=0000#
#DI=0000#
#BP=0000#
#CS=1234#
#IP=0000#
#SS=0000#
#SP=0000#
#MEM=0100:FFFE,00FF-0100:FF00,F4#
tất cả các giá trị phải được trong hệ thập lục phân.
khi không xác định các giá trị này được thiết lập theo mặc định:
LOAD_SEGMENT = 0.100
LOAD_OFFSET = 0.000
CS = ES = SS = DS = 0.100
IP = 0.000
nếu LOAD_SEGMENT và LOAD_OFFSET không quy định, sau đó CS và các giá trị IP được sử
dụng và ngược lại.
"# Mem = " Chỉ thị có thể được sử dụng để viết các giá trị vào bộ nhớ trước khi chương trình
bắt đầu
# MEM = NNNN, [bytestring]-NNNN: NNNN, [bytestring] #
ví dụ:
# MEM = 1000,01 ABCDEF0122-0.200, 1233 #
tất cả các giá trị nằm trong hex, NNNN - cho địa chỉ vật lý, hoặc NNNN (: NNNN) cho địa chỉ
logic.
- Tách các mục. không gian được phép vào bên trong.
lưu ý: tất cả các giá trị nằm trong hex. hệ thập lục phân hậu tố tiền tố / là không cần thiết. đối
với từng byte thì phải có 2 ký tự chính xác, ví dụ: 0A, 12 hoặc 00.
nếu không có chỉ thị chỉ thị trên được cài sẵn trong mã nguồn, binf tập tin là không tạo ra.
khi tải giả lập. bin tập tin mà không cần binf file nó sẽ sử dụng.
c: emu8086 \default.binf \ thay thế.
này cũng áp dụng cho bất kỳ tập tin khác với phần mở rộng mà không quen thuộc để giả lập
các
định dạng của một điển hình ".BINF". file:
8000 ; load to segment.
0000 ; load to offset.
55 ; AL
66 ; AH
77 ; BL
88 ; BH
99 ; CL
AA ; CH
BB ; DL
CC ; DH
DDEE ; DS
ABCD ; ES
EF12 ; SI
3456 ; DI
7890 ; BP
8000 ; CS
0000 ; IP
C123 ; SS
D123 ; SP
• Chúng ta có thể quan sát mà lần đầu tiên đi một số dạng thập lục phân và sau đó một bình
luận.
Các ý kiến được thêm vào chỉ để làm cho một số thứ tự, khi tải một file giả lập BINF nó
không quan tâm đến ý kiến nó chỉ cần nhìn cho một giá trị về ngành, nghề cụ thể, do đó, dòng
lệnh là rất quan trọng.
Chú ý: hiện có Tập tin được tự động ghi đè .binf về lập lại.
________________________________________
Trong trường hợp tải trọng để bù đắp giá trị không phải là số không (0000), ORG???? H nên
được thêm vào nguồn gốc của một .BIN tập tin ở đâu???? H là tải bù đắp, điều này nên được
thực hiện để cho phép tính toán chính xác trình biên dịch địa chỉ.
• # make_boot # - loại này là một bản sao của ca khúc đầu tiên của một đĩa mềm (boot
sector). sự khác biệt chỉ từ make_bin # # là phân khúc được xác định trước để tải là 0000:7
c00h (giá trị này được viết để kèm binf file) trong thực tế, bạn có thể sử dụng # make_bin #
mà không cần bất kỳ sự thiếu hiệu suất, tuy nhiên để thực hiện kiểm tra chính xác trong giả
lập, bạn sẽ cần phải thêm những chỉ thị: # cs = 0 # và ip # = 7c00 # - lắp ráp viết các giá trị
này vào file. binf.
Bạn có thể viết một khu vực khởi động của một FLOPPY_0 (virtual đĩa mềm) thông qua trình
đơn trong giả lập:
[Ổ đĩa ảo] -> [ghi 512 byte tại 7c00 để] khu vực khởi động
đầu tiên bạn nên lập một thùng. tập tin và tải nó tại giả lập (xem "micro-os_loader.asm" và
"vi os_kernel.asm" trong c: \ emu8086 \ ví dụ để biết thêm thông tin).
sau đó chọn [ổ ảo] -> [khởi động từ menu] đĩa mềm để giả lập khởi động từ đĩa mềm ảo.
sau đó, nếu bạn đang hiếu kỳ, bạn có thể viết các tập tin tương tự để thực sự đĩa mềm và khởi
động máy tính của bạn từ nó. bạn có thể sử dụng "writebin.asm" từ c: \ emu8086 \ ví dụ \
vi hệ điều hành không có ms-dos/windows khu vực khởi động tương thích, do đó, nó tốt hơn
để sử dụng một đĩa mềm trống. tham khảo hướng dẫn 11 cho biết thêm thông tin.
trình biên dịch chỉ thị 7c00h org nên được bổ sung trước khi code, khi máy tính bắt đầu nó tải
ca khúc đầu tiên của một đĩa mềm tại địa chỉ 0000:7 c00.
kích thước của một tập tin ghi khởi động nên được ít hơn 512 byte (giới hạn bởi kích thước
của một khu vực đĩa).
thực hiện luôn luôn bắt đầu từ byte đầu tiên của tập tin.
loại tập tin này là duy nhất cho emu8086 giả lập.
Xử lý lỗi
lắp ráp trình biên dịch ngôn ngữ (hoặc lắp ráp) báo cáo về các lỗi trong một cửa sổ thông tin
riêng biệt:
• MOV DS, 100 - là bất hợp pháp hướng dẫn đăng ký vì phân khúc không thể được đặt
trực tiếp, nói chung mục đích đăng ký nên được sử dụng, ví dụ
MOV AX, 100
MOV DS, AX
• MOV AL, 300 - là bất hợp pháp bởi vì AL hướng dẫn đăng ký chỉ có 8 bit, và do đó
giá trị tối đa cho nó là 255 (hoặc 11111111b), và tối thiểu là -128.
Khi lưu một file lắp ráp, trình biên dịch cũng tiết kiệm được 2 file khác được sau đó được sử
dụng bởi giả lập để hiển thị mã nguồn gốc khi bạn chạy các thực thi nhị phân, và dòng lựa
chọn tương ứng. Rất thường mã gốc khác với mã vô hiệu hóa bởi vì không có ý kiến, phân
đoạn không có và không có khai báo biến. Trình biên dịch chỉ thị sản xuất không có mã nhị
phân, nhưng tất cả mọi thứ được chuyển thành mã máy tinh khiết. Đôi khi một chỉ dẫn đơn
gốc được lắp vào các hướng dẫn một số mã máy, điều này được thực hiện chủ yếu cho khả
năng tương thích với bộ vi xử lý 8.086 gốc (ví dụ ROL AL, 5 là tuần tự lắp ráp thành năm
ROL AL, 1 hướng dẫn).
*. ~ Asm - file này có nguồn gốc mã được sử dụng để thực hiện một tập tin thực thi.
*. Debug - file này có thông tin cho phép giả lập chọn dòng mã nguồn gốc trong khi chạy các
mã máy.
*. symbol - bảng biểu tượng, nó chứa thông tin cho phép hiển thị các biến "cửa sổ". Nó là một
tập tin văn bản gốc, vì vậy bạn có thể xem nó ở bất kỳ trình soạn thảo văn bản (bao gồm cả
nguồn emu8086 biên tập).
*. Binf - ASCII tập tin này chứa thông tin được sử dụng bởi giả lập để tải file BIN tại địa
điểm quy định, và thiết lập các giá trị đăng ký thực hiện trước; (được tạo ra chỉ khi một thực
thi là một tập tin BIN).
Sử dụng giả lập
Nếu bạn muốn tải mã của bạn vào giả lập, chỉ cần nhấp vào "Emulate"nút
Nhưng bạn cũng có thể sử dụng giả lập để tải file thực thi ngay cả khi bạn không có nguồn gốc
mã. Chọn Show emulator từ menu Emulator.
•
Hãy thử các tập tin tải từ thư mục "MyBuild". Nếu không có ảnh trong "MyBuild"trở về thư
mục" để biên tập mã nguồn, ví dụ chọn từ menu File, tải bất kỳ mẫu, biên dịch nó và sau đó
tải vào giả lập này:
nó có thể nạp thực
thi mà không có
mã nguồn
[Single step] thực hiện các hướng dẫn từng người một hướng dẫn dừng lại sau khi mỗi.
[Run] nút thực hiện các hướng dẫn từng người một với sự chậm trễ do sự chậm trễ bước giữa
hướng dẫn.
Nhấp đúp chuột vào hộp văn bản đăng ký mở "Extended Viewer" cửa sổ với giá trị của thể
đăng ký chuyển đổi cho tất cả các hình thức có thể. Bạn có thể sửa đổi các giá trị của việc
đăng ký trực tiếp trong cửa sổ này.
Nhấp đúp chuột vào mục danh sách bộ nhớ mở "Extended Viewer" với WORD giá trị nạp từ
bộ nhớ danh sách tại vị trí đã chọn. byte quan trọng là lúc thấp hơn ít địa chỉ: LOW BYTE
được tải từ vị trí được lựa chọn và CAO BYTE từ địa chỉ bộ nhớ tiếp theo. Bạn có thể sửa đổi
các giá trị của từ bộ nhớ trực tiếp trong cửa sổ "" Extended Viewer,
Địa chỉ vật lý : HEX DECIMAL ASCII
danh sách bộ nhớ
tháo rời
mã máy
Bạn có thể sửa đổi các giá trị đăng ký vào thời gian chạy bằng cách gõ trên các giá trị hiện có.
[Flags] nút cho phép bạn xem và sửa đổi về thời gian chạy cờ.
Ổ đĩa ảo
Emulator hỗ trợ lên đến 4 ổ đĩa ảo từ đĩa mềm. Theo mặc định có một tập tin FLOPPY_0 đó
là một hình ảnh của một đĩa mềm thực tế (kích thước của tập tin đó là chính xác 1.474.560
byte).
Để gắn thêm ổ đĩa mềm chọn [Creat new floppy drive] từ [Virtual menu] lái xe. Mỗi khi
bạn thêm một ổ đĩa mềm giả lập tạo ra một tập tin FLOPPY_1, FLOPPY_2, và FLOPPY_3.
Tạo đĩa mềm được hình ảnh của sản phẩm nào IBM / MS-DOS định dạng ảnh đĩa. Chỉ có 4 ổ
đĩa mềm được hỗ trợ (0 3)!
Để xóa một ổ đĩa mềm, bạn nên đóng giả lập, xóa các file bằng tay và yêu cầu khởi động lại
giả lập.
Bạn có thể xác định số ổ đĩa mềm bằng cách sử dụng thuộc INT 11h AX này trả về chức năng
đăng ký với danh sách thiết bị BIOS. Bit 7 và 6 xác định số lượng của ổ đĩa mềm (trừ 1):
Bit 7-6 của AX:
00 đơn đĩa mềm.
01 hai đĩa mềm đĩa.
10 ba đĩa mềm đĩa.
11 bốn đĩa mềm đĩa.
Emulator bắt đầu kể từ ổ đĩa mềm kèm theo bắt đầu từ, đầu tiên trong FLOPPY_1 hồ sơ vụ
án không tồn tại nó dừng lại kiểm tra và bỏ qua các tập tin FLOPPY_2 và FLOPPY_3.
Để viết và đọc từ ổ đĩa mềm bạn có thể sử dụng chức năng INT 13h, xem danh sách các ngắt
được hỗ trợ thêm thông tin.
giả lập có thể mô phỏng hệ điều hành nhỏ bé, hãy kiểm tra hệ điều hành hướng dẫn.
Các lệnh trong các menu
Lệnh trình chiếu trong thu mục “file”:
New
Examples
Open
Save
Save as
Print
Export to HTML
Exit
Lệnh trình chiếu trong thư mục “edit”:
Undo
Redo
Cut
Copy
Paste
Sellect all
Find
Find next
Replace
Go to line
Indent
Outdent
Comment block
Uncomment block
Advanced editor macros
Advanced
assemble and load in the emulator: lắp ráp và tải trong các giả lập
fasm
Base :cơ sở
Lệnh trình chiếu trong thư mục “bookmark”:
Toggle bookmark
Previous bookmark
Next bookmark
Jump to first
Jump to last
Clear all bookmark
Lệnh trình chiếu trong thư mục “assembler”
Compile
Compile and load in the emulator
Fasm
Set output directory…
Lệnh trình chiếu trong thư mục “emulator”
Show emulator
Assemble and load in the emulator
Lệnh trình chiếu trong thư mục “math”
Multi base calculator
Base converter
Bảng mã ASCII trong máy và cách nhận biết
Lệnh trình chiếu trong thư mục “help”
Documentation and tutorials
Check for an update…
About…
Cách chạy chương trình thử nghiệm với một vài ví dụ cụ thể
Đối với phần BIN thì phần quang trọng nhất là: #make bin#