76 chide chu tribe may tink 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 Đối tượng 1 Đối tượng 2 Đối tượng 3_ Liệt kê .LST Tham khảo chéo .CRE C
Trang 176 chide chu tribe may tink C6 Hợp ngữ / S97
CHUONG 6
Hợp ngữ
Khoa Công nghệ thông tin Đại học Bach khoa tp.HCM Bien soan : Sgayér aan Mink
Trang 276 chide chu tribe may tink 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
Đối tượng 1 Đối tượng 2 Đối tượng 3_ Liệt kê (.LST)
Tham khảo chéo (.CRE)
Chương trình
Tin “VÀ
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 dé (MAP)
Khoa Công nghệ thông tin Đại học Bach khoa tp.HCM Bien soan : Sgayér aan Mink
Trang 3C6 Hợp ngữ / S99
[options] source,[objectf],[listing],[crossref][;] ›
Tri 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
Chương trình thực thi
hoặc
Bản đồ sử dụng bộ nhớ
Tập tin thư viện
objects.OBJ object1.COM object1.EXE
NUL.MAP
name.LIB
Khoa Cong nghé thong tin Dai hoc Bdch khod tp.HCM Bien soan : Mguyer aan Mink
Trang 476 chide chu tribe may tink C6 Hợp ngữ / S100
Chương trình nguồn :
* Là tập tin văn bản (.ASMI): Filename.ASM
* Dạng lệnh : [<nhan>] <ma lénh> <thôngsố> ;<chú thích>
* Các ký tự dùng đề đặt tên cho nhãn : a-z A-Z 0-9 ? @ _ §
va bắt đầu bằng một ký tự khác số
*“ Sô hệ 8 xxxQ hoặc xxxO (123Q, 7050)
* Số hệ 10 mặc định hoặc xxxxxD (32767, 4509D)
*Số hệ l§ : xxxxH và bắt đầu bằng số (1A97H, 0E05BH)
Khoa Công nghệ thông tin Đại học Bach khoa tp.HCM Bien soan : Sgayér aan Mink
Trang 576 chute chu trde may tinh C6 Hợp ngữ / S101
chữ nhỏ
- Do người sử dụng đặt
- Không phân biệt chữ lớn
- Chiêu dài tùy ý nhưng chỉ
có 31 ký tự đâu có nghĩa
ae
Thay dia chỉ bộ nhớ
Đê chứa dữ liệu
xe
iz
a
-
— ụ
BYTE
WORD
DWORD <tên>
<tên>
Dx <biéu thivc> [, .]
<tên cấu trúc> <biêu thức>
<tén mau tin> <biéu thtec>
LABEL <thuộc tính bién>
EXTRN <tên>:<thuộc tinh biến>|[, 4
id
—_
Thay địa chỉ bộ nhớ
Đê đánh dâu vị trí
NEAR FAR
<tén>:
<tén>
<tén>
<tén>
_ENDP
EXTRN <tên>:<thuộc tính nhẫn>†, .]
LABEL <thuộc tính nhãn>
PROC [<thuộc tính>]
ABS
<tén>
EQU
<tén> =
EXTRN <tén>:ABS [, ]
<biều thức>
<biéu thtec>
Thay cho gia tri
Khoa Cong nghé thong tin Dai hoc Bdch khod tp.HCM Bien soan : Mguyer aan Mink
Trang 676 chic chu trde may tink C6 Hợp ngữ / S102
Thay đồi thuôc tính : PTR, :, SHORT, THIS, HIGH, LOW
Trả trị : SEG, OFFSET, TYPE, LENGTH, SIZE
Mau tin : sé dich, MASK, WIDTH
Số hoc: + - « / MOD SHR SHL
| Quan hé : EQ, NE, LT, LE, GT, GE
Luan ly : NOT, AND, OR, XOR
(dia chi)
Cac toan tw
có độ ưu tiên
biến
(địa chỉ)
Khoa Công nghệ thông tin Đại học Bach khoa tp.HCM Bien soan : Sgayér aan Mink
Trang 776 chide chu tribe may tink C6 Hợp ngữ / S103
code segment para public ‘code’
assume cs:code,ds:code,ss:code
main proc
model small
stack <Sé6 byte> <Thân chương trình chính>
<Kết thúc, trở về DOS>
<Các khai báo biến và hằng> main ence ¬
code ode <Cac c ương trình con
main proc
<Cac khai bao bién va hang>
<Than chuo'ng trinh chinh>
<Kêt thúc, trở vệ DOS>
<Khai báo vùng đệm>
end
stack ends
end main
Khoa Công nghệ thông tin Đại học Bach khoa tp.HCM Bien soan : Sgayér aan Mink
Trang 8C6 Hợp ngữ / S104
<tên> ENDS
<tén> SEGMENT [<align>] [<combine>| [ "<class>']
<than segment>
<align>
BYTIE|0:11:2
<align> Địa chỉ bắt đâu
BYTE XXXX xxxx (1 byte)
WORD | XXXX xxxO (2 byte) DWORD | XXXX xx00O (4 byte) PARA XXXX 0000 (16 byte) PAGE XXXO 0000 (256 byte)
X = 4 bit x = 1 bit
0
PARA & PAGE
Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM Bien soan : Mguyer aan Mink
Trang 976 chide chu tribe may tink C6 Hợp ngữ / S105
C Giả định cho EXE )
assume CS:code,DS:data,SS:stack
ASSUME <thanh ghi doan>:<tén>[ ]
C Giả định cho COM )
mov AX.data
<tén> PROC [NEAR/ FAR] (ké thúc chương tình }——~ chính ^ ` ——ờ
hoặc
int 20h
(con phuc vu ngat quang )
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 Bach khoa tp.HCM Bien soan : Sgayér aan Mink
Trang 1076 chute chu trde may tinh C6 Hợp ngữ / S106
END [<biễểu thức>]
(Địa chỉ bắt đầu thi hành )
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 đữ liệu
<tênbiến> Dx “<biểu thức>|,<biêu thức> ]
<tênhăng> EQU_ <biếu thức hằng>
<tênhằng> = <biêu thức hang>
C- Xem lại mục "tên"
<tên > LABEL <thuộc tính> <>
<—
EXTRN <tên>:<thuộc tính>{, |
Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM Bien soan : Mguyer aan Mink
Trang 1176 chute chu trde may tinh C6 Hợp ngữ / S107
<tén> GROUP <tên đoạn>|{ ] Cea
“
dgroup GROUP datal,data2,data3
ASSUME DS:dgroup
MOV AX,dgroup MOV DS,AX
>
EXTRN <tên>:<thuộc tính>{, ]
PUBLIC <tên>|[, ]
ORG [<biéu thitc>]
INCLUDE — <tén tap tin>
COMMENT <ddu ngdn>
<chi thich khéng can cham phay>
<dau ngdn> <chú thích không cần châm phay>
\
Khoa Cong nghé thong tin Dai hoc Bdch khod tp.HCM Bien soan : Mguyer aan Mink
Trang 1276 chide chu tribe may tink C6 Hợp ngữ / S108
<tên> JMMACRO_ |<thông số hình thức>, | < > as:
Chi thi Macro
(<en macro> ˆ <thông số thực>, Ồ REPT <biéu thire>
LOCAL <tén>[, |
IRP <thông số>, <danh sách các trị trong ngoặc nhọn>
PURGE <tén macro> [, | ENDM
&<thong so> IRPC <thông số>,<string>
% (Biêu thức) FNDM
/ \ < van ban>
‘<ky tu> ss<chu thich>
Khoa Công nghệ thông tin Đại học Bach khoa tp.HCM Bien soan : Sgayér aan Mink