Cấu trúc máy tính P9
Hợp ngữ
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S97
CHƯƠNG 6
Hợp ngữ
Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM Biên soạn : Nguyễn Xuân Minh
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S98
Nguồn 1 Nguồn 2 Nguồn 3 Chương trình
nguồn (.ASM)
Chương trình
dịch hợp ngữ MASM.EXE
Mã đối tượng (.OBJ)
Đối tượng 1 Đối tượng 2 Đối tượng 3 Liệt kê (.LST)
Tham khảo chéo (.CRF)
Chương trình
liên kết LINK.EXE
/Tiny
Mã thực thi (.EXE)
Chương trình Chương trình Mã thực thi (.COM)
thực thi .COM thực thi .EXE Bản đồ (.MAP)
Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM Biên soạn : Nguyễn Xuân Minh
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S99
MASM [options] source,[object],[listing],[crossref][;]
Trị mặc nhiên :
. Chương trình nguồn Source.ASM
. Tâp tin đối tượng Source.OBJ
. Bản liệt kê chương trình NUL.LST
. Tập tin tham khảo chéo NUL.CRF
LINK [options] objects,[exec],[map],[libraries][;]
Trị mặc nhiên :
. Tập tin đối tượng objects.OBJ
. Chương trình thực thi object1.COM
hoặc object1.EXE
. Bản đồ sử dụng bộ nhớ NUL.MAP
. Tập tin thư viện name.LIB
Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM Biên soạn : Nguyễn Xuân Minh
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S100
Chương trình nguồn :
* Là tập tin văn bản (.ASM): Filename.ASM
* Dạng lệnh : [] ;
* Các ký tự dùng để đặt tên cho nhãn : a-z A-Z 0-9 ? @ _ $ .
và bắt đầu bằng một ký tự khác số.
* Số hệ 2 : ××××××××B (10110101B)
* Số hệ 8 : ×××Q hoặc ×××O (123Q, 705O)
* Số hệ 10 : mặc định hoặc ×××××D (32767, 4509D)
* Số hệ 16 : ××××H và bắt đầu bằng số. (1A97H, 0E05BH)
Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM Biên soạn : Nguyễn Xuân Minh
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S101
- Do người sử dụng đặt. Thay địa chỉ bộ nhớ
- Không phân biệt chữ lớn Nhãn Để đánh dấu vị trí.
chữ nhỏ.
- Chiều dài tùy ý nhưng chi
có 31 ký tự đầu có nghĩa. NEAR
Tên FAR
:
LABEL
PROC []
...
Hằng ENDP
Thay địa chỉ bộ nhớ EXTRN :[, . . .]
Để chứa dữ liệu.
Biến
BYTE
WORD
DWORD Dx [, . . .] ABS
QWORD
TBYTE EQU
LABEL =
EXTRN
:[, . . .]
EXTRN :ABS [, . . .]
Thay cho giá trị.
Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM Biên soạn : Nguyễn Xuân Minh
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S102
Thay đổi thuộc tính : PTR, :, SHORT, THIS, HIGH, LOW
Biểu thức
Toán tử Trả trị : SEG, OFFSET, TYPE, LENGTH, SIZE
Toán hạng
Mẫu tin : số dịch, MASK, WIDTH
Số học : + - ∗ / MOD SHR SHL
tên
Quan hệ : EQ, NE, LT, LE, GT, GE
trị tức thời
Luận lý : NOT, AND, OR, XOR
hằng nhãn
(trị) (địa chỉ)
ký tự Các toán tử
có độ ưu tiên.
biến
(địa chỉ)
số
Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM Biên soạn : Nguyễn Xuân Minh
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S103
Dạng chương trình title
code segment para public 'code'
assume cs:code,ds:code,ss:code
DOSSEG
main proc
.model small
.stack
.data
main endp
.code
code ends
main proc
data segment para public 'data'
data ends
main endp
stack segment stack 'stack'
end
stack ends
end main
Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM Biên soạn : Nguyễn Xuân Minh
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S104
0 0 SEGMENT [] [] [ '']
A A
ENDS
0
0 Địa chỉ bắt đầu
BYTE XXXX xxxx (1 byte)
B
Không có WORD XXXX xxx0 (2 byte)
B
DWORD XXXX xx00 (4 byte)
PARA XXXX 0000 (16 byte)
0 0
PAGE XXX0 0000 (256 byte)
A
AB X4 bit x1 bit
0 Bộ nhớ
PUBLIC
B BYTE 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 0 WORD
A A
DWORD
B
0 PARA & PAGE
COMMON
B
Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM Biên soạn : Nguyễn Xuân Minh
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S105
Giả định cho .EXE
ASSUME :[,...]
assume CS:code,DS:data,SS:stack
Giả định cho .COM ...
mov AX,data
assume CS:code,DS:code,SS:code mov DS,AX
PROC [NEAR / FAR] Kết thúc chương trình chính
mov AX,4C00h
ENDP int 21h
hoặc
int 20h
Tiêu đề
con
ret
1.Tên chương trình.
con phục vụ ngắt quãng
2.Chương trình làm gì ?
iret
3.Các thông số vào - ra.
4.Các thanh ghi bị đổi nội dung.
Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM Biên soạn : Nguyễn Xuân Minh
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S106
END []
Các trường hợp không có địa chỉ bắt đầu
1. Các mô đun phụ trong một chương
trình có nhiều mô đun.
2. Tạo thư viện.
3. Tạo dữ liệu.
Dx [,. . .]
EQU
=
Xem lại mục "tên"
LABEL
EXTRN :[, . . .]
Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM Biên soạn : Nguyễn Xuân Minh
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S107
PUBLIC [,. . .]
GROUP [,. . .]
dgroup GROUP data1,data2,data3
... EXTRN :[,. . .]
ASSUME DS:dgroup
...
MOV AX,dgroup
MOV DS,AX ORG []
INCLUDE
COMMENT
@
Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM Biên soạn : Nguyễn Xuân Minh
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S108
MACRO [, . . . ]
... Chỉ thị Macro
ENDM
, . . . REPT
...
EXITM ENDM
LOCAL [, . . . ]
IRP ,
...
PURGE [, . . . ] ENDM
Các & IRPC ,
toán tử ...
% (Biểu thức) ENDM
< văn bản>
! ;;
Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM Biên soạn : Nguyễn Xuân Minh