BÀI GING MÔN
HP NG
Qung Ngãi - 2015
Bài ging môn Assembly
Mc lc
Chương 1 - CƠ BẢN V HP NG ............................................................................................. 1
1.1 Cú pháp lnh hp ng ........................................................................................................... 1
1.1.1 Trường Tên (Name Field) .............................................................................................. 1
1.1.2 Trường toán t (operation field) .................................................................................... 1
1.1.3 Trườngc toán hng (operand(s) field) ....................................................................... 1
1.1.4 Trường chú thích (comment field) ................................................................................. 2
1.2 Các kiu s liu trong chương trình hp ng........................................................................ 2
1.2.1 Các s ............................................................................................................................. 2
1.2.2 Các ký t ........................................................................................................................ 2
1.3 Các biến (variables) .............................................................................................................. 3
1.3.1. Biến byte ....................................................................................................................... 3
1.3.2 Biến t ............................................................................................................................ 3
1.3.3 Mng (arrays) ................................................................................................................. 3
1.4 Các hng (constants) ............................................................................................................. 4
1.5 Các lnh bản ..................................................................................................................... 5
1.5.1 Lnh MOV và XCHG .................................................................................................... 5
1.5.2 Lnh ADD, SUB, INC, DEC ......................................................................................... 5
1.5.3 Lnh NEG (negative) ..................................................................................................... 6
1.6 Chuyn ngôn ng cp cao tnh ngôn ng ASM ................................................................. 6
1.6.1 Mệnh đề B=A................................................................................................................. 6
1.6.2 Mệnh đề A=5-A ............................................................................................................. 6
1.6.3 Mệnh đề A=B-2*A ........................................................................................................ 7
1.7 Cu trúc ca mt chương trình hợp ng ............................................................................... 7
1.7.1 Các kiu b nh (memory models) ................................................................................ 7
1.7.2 Đoạn s liu ................................................................................................................... 7
1.7.3 Đoạn ngăn xếp ............................................................................................................... 7
1.7.4 Đan ......................................................................................................................... 7
1.8 Các lnh vào ra...................................................................................................................... 8
1.8.1 Lnh INT 21h................................................................................................................. 8
1.9 Chương trình đu tiên ........................................................................................................... 9
1.10 To ra và chy mt chương trình hợp ng ........................................................................ 10
1.11 Xut mt chui ký t ........................................................................................................ 10
1.12 Chương trình đi ch thưng sang ch hoa...................................................................... 11
Bài ging môn Assembly
Chương 2 - Trng thái ca vi x lý và các thanh ghi c ............................................................... 13
2.1 Các thanh ghi c (Flags register) ........................................................................................ 13
2.2 Tn (overflow) ................................................................................................................... 14
2.3 Các lnh nh hưng đế c như thế nào ............................................................................... 15
Chương 3 - CÁC LNH ĐIỀU KHIN ....................................................................................... 18
3.1 Ví d v lnh nhy .............................................................................................................. 18
3.2 Nhy có điu kin ............................................................................................................... 18
3.3 Lnh JMP ............................................................................................................................ 21
3.4 Cu trúc ca ngôn ng cp cao ........................................................................................... 21
3.4.1 Cu trúc r nhánh ......................................................................................................... 21
4.3.2 Cu trúc lp .................................................................................................................. 25
3.5 Lp tnh vi cu trúc cp cao............................................................................................. 26
Chương 4 - CÁC LNH LOGIC, DCH VÀ QUAY ................................................................... 31
4.1 Các lnh logic...................................................................................................................... 31
4.1.1 Lnh AND,OR và XOR ............................................................................................... 31
4.1.2 Lnh NOT .................................................................................................................... 33
4.1.3 Lnh TEST ................................................................................................................... 33
4.2 Lnh SHIFT ........................................................................................................................ 33
4.2.1 Lnh dch trái (left shift ) ............................................................................................. 34
4.2.2 Lnh dch phi (Right Shift ) ....................................................................................... 34
4.3 Lnh quay (Rotate).............................................................................................................. 35
4.4 Xut nhp s nh phân và s hex ........................................................................................ 36
4.4.1 Nhp s nh phân ......................................................................................................... 36
4.4.2 Xut s nh phân .......................................................................................................... 37
4.4.3 Nhp s HEX ............................................................................................................... 37
4.4.4 Xut s HEX ................................................................................................................ 38
Chương 5 - NGĂN XP VÀ TH TC ...................................................................................... 40
5.1 Ngăn xếp ............................................................................................................................. 40
5.2 Ưng dng ca stack............................................................................................................. 42
5.3 Th tc (Procedure) ............................................................................................................ 43
5.4 CALL & RETURN ............................................................................................................. 44
5.5 Ví d v th tc ................................................................................................................... 46
Chương 6 - LNH NHÂN VÀ CHIA........................................................................................... 48
6.1 Lnh MUL và IMUL........................................................................................................... 48
Bài ging môn Assembly
6.2 Ưng dụng đơn gin ca lnh MUL và IMUL ..................................................................... 49
6.3 Lnh DIV và IDIV .............................................................................................................. 50
6.4 M rng du ca s b chia ................................................................................................. 51
6.5 Th tc nhp xut s thp phân .......................................................................................... 51
Chương 7 - MNG VÀ CÁC CH Đ ĐA CH ....................................................................... 58
7.1 Mng mt chiu .................................................................................................................. 58
7.2 Các chế độ đa ch (addressing modes) ............................................................................... 59
7.2.1 Chế độ đa ch gián tiếp bng thanh ghi....................................................................... 59
7.2.2 Chế độ đa ch ch s và cơ sở...................................................................................... 61
7.2.5 Truy xut đoạn stack .................................................................................................... 65
7.3 Sp xếp s liu trên mng ................................................................................................... 65
7.4 Mng 2 chiu....................................................................................................................... 67
7.6 Ưng dụng đ tính trung bình ............................................................................................... 69
7.7 Lnh XLAT......................................................................................................................... 71
1
Chương 1 - BN V HP NG
Trong chương này sẽ gii thiu nhng nguyên tắc chung để to ra, dch và chy một chương
trình hp ng trên máy tính. Cu trúc ng pháp ca lnh hp ng trong giáo trình này đưc tnh
bày theo Macro Assembler (MASM) da trên CPU 8086 .
1.1 Cú pháp lnh hp ng
Một chương trình hp ng bao gm mt lot các mệnh đề (statement) đưc viết liên tiếp nhau,
mi mệnh đ được viết trên 1 dòng. Mt mệnh đề có th là :
- mt lnh (instruction) : đưc trình biên dch (Assembler =ASM) chuyn thành mã máy.
- mt ch dn ca Assembler (Assembler directive) : ASM không chuyn thành mã máy
Các mệnh đề ca ASM gồm 4 trưng :
Name Operation Operand(s) Comment
các trường cách nhau ít nht là mt ký t trng hoc mt ký t TAB
ví d lệnh đề sau :
START : MOV CX,5 ; khơ to thanh ghi CX
Sau đây là mt ch dn ca ASM :
MAIN PROC ; to mt th tc có tên là MAIN
1.1.1 Trưng Tên (Name Field)
Trường tên được dùng cho nhãn lnh, tên th tc và tên biến. ASM s chuyển tên thành địa ch
b nh. Tên th dài t 1 đến 31 t. Trong tên cha các t t a-z, các s các ký t đặc
bit sau : ? ,@, _, $ và du. Không đưc phép t trng trong phn tên. Nếu trong n
t. thì nó phi là t đầu tiên. Tên không đưc bắt đầu bng mt s. ASM không phân bit
gia ký t viết thưng và viết hoa .
Sau đây là các ví d v tên hp l và không hp l trong ASM .
Tên hp l Tên không hp l
COUNTER1 TWO WORDS
@CHARACTER 2ABC
SUM_OF_DIGITS A45.28
DONE? YOU&ME
.TEST ADD-REPEAT
1.1.2 Trưng toán t (operation field)
Đi vi 1 lệnh trưng toán t chưá hiu (symbol) ca mã phép toán (operation code =
OPCODE) .ASM s chuyn hiu mã phép toán thành mã máy. Thông thường hiu mã
phép toán mô t chc năng của phép toán, ví d ADD, SUB, INC, DEC, INT ...
Đi vi ch dn ca ASM, trường toán t chưá mt opcode gi (pseudo operation code = pseudo-
op). ASM không chuyn pseudo-op thành mã máy mà ng dn ASM thc hin mt vic gì đó
ví d to ra mt th tc, định nghĩa các biến ...
1.1.3 Trưng các toán hng (operand(s) field)
Trong mt lệnh trường toán hng ch ra các s liu tham gia trong lệnh đó. Mt lnh th
không có toán hng, có 1 hoc 2 toán hng. Ví d :
NOP ; không có toán hng
INC AX ; 1 toán hng
ADD WORD1,2 ; 2 toán hng cng 2 vi ni dung ca t nh WORD1