Tổ chức cấu trúc máy tính C6 Hợp ngữ / S97
Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM
Biên soạn : Nguyễn Xuân Minh
CHƯƠNG 6
Hợp ngữ Tổ chức cấu trúc máy tính C6 Hợp ngữ / S98
Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM
Biên soạn : Nguyễn Xuân Minh
Nguồn 1
Chương trình
nguồn (.ASM)
MASM.EXE
Mã đối tượng (.OBJ)
Liệt kê (.LST)
Tham khảo chéo (.CRF)
LINK.EXE
Mã thực thi (.EXE)
Mã thực thi (.COM)
Bản đồ (.MAP)
/Tiny
Nguồn 2 Nguồn 3
. 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
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S100
Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM
Biên soạn : Nguyễn Xuân Minh
Chương trình nguồn :
* Là tập tin văn bản (.ASM):
Filename
.ASM
* Dạng lệnh : [<
nhãn
>] <
mã lệnh
> <
thông số
>
;
<
chú thích
××
××
××
××
××
××
××
××
××
××
××
××
×
B
(10110101B)
* Số hệ 8
:
×
××
××
××
××
××
×
Q
hoặc
×
××
××
××
××
××
×
H
và bắt đầu bằng
số
. (1A97H, 0E05BH)
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S101
Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM
Biên soạn : Nguyễn Xuân Minh
Biến
Hằng
Nhãn
- Do người sử dụng đặt.
- Không phân biệt chữ lớn
chữ nhỏ.
- Chiều dài tùy ý nhưng chi
có 31 ký tự đầu có nghĩa.
Tên
NEAR
FAR
BYTE
WORD
DWORD
QWORD
Để đánh dấu vị trí.
Thay cho giá trị.
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S102
Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM
Biên soạn : Nguyễn Xuân Minh
Biểu thức
tên
hằng
(trị)
nhãn
(địa chỉ)
biến
(địa chỉ)
trị tức thời
số
ký tự
Toán hạng
Toán tử
Thay đổi thuộc tính
:
PTR, :, SHORT, THIS, HIGH, LOW
Trả trị
small
.
stack
<Số byte>
.
data
<Các khai báo biến và hằng>
.
code
main
proc
<Thân chương trình chính>
<Kết thúc, trở về DOS>
main
endp
<Các khai báo chương trình con>
end
title
<Tên chương trình>
code
segment para public '
'
<Khai báo vùng đệm>
stack
ends
end
main
Dạng chương trình
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S104
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ên>
SEGMENT
[<align>] [<combine>] [
'
<class>
'
]
<thân segment>
<tên>
ENDS
<combine>
<align>
<align> Địa chỉ bắt đầu
0000
(256 byte)
X
4 bit
x
1 bit
0 1 2 3 4 5 6 7 8 9 A B C D E F
Bộ nhớ
BYTE
WORD
DWORD
PARA & PAGE
A
B
B
A
0
COMMON
0
0
PUBLIC
A
B
AB
<tên>
ENDP
Kết thúc chương trình
mov AX,4C00h
int 21h
hoặc
int 20h
chính
ret
con
iret
con phục vụ ngắt quãng
1.Tên chương trình.
Tiêu đề
2.Chương trình làm gì ?
3.Các thông số vào - ra.
4.Các thanh ghi bị đổi nội dung.
assume CS:code,DS:code,SS:code
Giả định cho .COM
assume CS:code,DS:data,SS:stack
. . .
mov AX,data
mov DS,AX
Giả định cho .EXE
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S106
biểu thức hằng
>
<
tên hằng
> = <
biểu thức hằng
>
<
tên
> LABEL <
thuộc tính
>
Xem lại mục "tên"
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S107
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ên>
GROUP
<tên đoạn>[,. . .]
PUBLIC
<tên>[,. . .]
EXTRN
<tên>:<thuộc tính>[,. . .]
dgroup GROUP data1,data2,data3
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ên> MACRO [<thông số hình thức>, . . . ]
. . .
ENDM
<tên macro> <thôn
g
số th
ự
c> , . . .
EXITM
LOCAL <tên> [, . . . ]
PURGE <tên macro> [, . . . ]
REPT <biểu thức>
. . .
ENDM
IRP <thông số>, <danh sách các trị trong ngoặc nhọn>
. . .
ENDM
IRPC <thông số>,<string>
. . .
ENDM
Các
toán tử
&<thông số>