Mô tả:
Chöông 6 : Toaùn töû – Toaùn haïng caùc pheùp ñònh ñòa chæ – Taäp leänh
Muïc tieâu
Hieåu caùch duøng toaùn töû trong ASM.
Naém ñöôïc taäp leänh cuûa CPU 8086/8088.
Bieát caùch ñònh ñòa chæ thoâng qua toaùn haïng.
Bieát vaän duïng caùc kyõ naêng treân vaøo vaán ñeà caàn giaûi
quyeát vaø hieän thöïc thaønh chöông trình.
9/21/2017
Chuong 7 Cac phep dinh vi dia chi
1
Toaùn töû
Ñieåm quan troïng phaân bieät giöõa toaùn töû vaø leänh laø :
Toaùn töû ñieàu khieån söï tính toaùn caùc trò haèng xaùc
ñònh luùc dòch.
Leänh ñieàu khieån söï tính toaùn caùc trò khoâng xaùc ñònh
ñöôïc cho ñeán khi CT thöïc hieän.
Ex : toaùn töû + ñieàu khieån pheùp coäng khi dòch.
Leänh coäng ADD ñieàu khieån pheùp coäng khi chöông trình thöïc
hieän.
9/21/2017
Chuong 7 Cac phep dinh vi dia chi
2
Toaùn töû soá hoïc
Toaùn töû
Cuù phaùp
Coâng duïng
+
+ expression
Döông
*
- expression
exp1*exp2
Aâm
Nhaân
/
exp1/exp2
Chia
MOD
+
exp1 mod exp2
exp1 + exp2
Phaàn dö
SHL
exp1 - exp2
exp shl n
Tröø
Dòch exp sang traùi n bit
SHR
exp shr n
Dòch exp sang phaûi n bit
9/21/2017
Coäng
Chuong 7 Cac phep dinh vi dia chi
3
Toaùn töû logic
Not
And
Not expression
Exp1 and exp2
Or
Xor
Exp1 or exp2
Exp1 xor exp2
Ex : MOV AH , 8 OR 4 AND 2
MOV AL, NOT (20 XOR 0011100B)
9/21/2017
Chuong 7 Cac phep dinh vi dia chi
4
Toaùn Töû Quan Heä
So saùnh 2 bieåu thöùc vaø cho trò laø true (-1) neáu
ñieàu kieän cuûa toaùn töû thoûa, ngöôïc laïi laø false.
EQ Exp1 EQ exp2
True neáu Exp1 = exp2
NE Exp1 NE exp2
LT Exp1 LT exp2
LE Exp1 LE exp2
True neáu Exp1 <> exp2
True neáu Exp1 < exp2
True neáu Exp1 <= exp2
GT Exp1 GT exp2
True neáu Exp1 > exp2
GE Exp1 GE exp2
True neáu Exp1 >= exp2
9/21/2017
Chuong 7 Cac phep dinh vi dia chi
5
ÑOÄ ÖU TIEÂN TOAÙN TÖÛ
TOAÙN TÖÛ
MOÂ TAÛ
()
Daáu ngoaëc
Ñoä öu tieân
giaûm daàn
+,-
* / MOD Nhaân , chia, Modulus
+, -
9/21/2017
Daáu döông , aâm
Coäng, tröø
Chuong 7 Cac phep dinh vi dia chi
6
Toaùn töû SEG
Cuù phaùp :
SEG expression
Cho ñòa chæ ñoaïn cuûa bieåu thöùc expression.
Expression coù theå laø bieán | nhaõn | teân segment
hay toaùn haïng boä nhôù khaùc.
9/21/2017
Chuong 7 Cac phep dinh vi dia chi
7
Toaùn töû OFFSET
Cuù phaùp :
OFFSET expression
Cho ñòa chæ OFFSET cuûa bieåu thöùc expression.
Expression coù theå laø bieán | nhaõn | teân segment
hay toaùn haïng tröïc tieáp boä nhôù khaùc.
Ex : naïp ñòa chæ segment vaø offset cuûa bieán table vaøo DS :AX
TABLE DB ?
MOV AX, SEG TABLE
MOV DS, AX
MOV DX, OFFSET Table
9/21/2017
Chuong 7 Cac phep dinh vi dia chi
8
TOAÙN TÖÛ $
Cho ñòa chæ cuûa OFFSET cuûa phaùt
bieåu chöùa toaùn töû $.
Thöôøng ñöôïc duøng ñeå tính chieàu daøi
chuoåi.
9/21/2017
Chuong 7 Cac phep dinh vi dia chi
9
TOAÙN TÖÛ PTR
Cuù phaùp : type PTR expression
Cho pheùp thay ñoåi daïng cuûa expression
neáu expr laø 1 bieán | toaùn haïng boä nhôù thì type coù
theå laø byte , word hay dword.
Neáu expr laø 1 nhaõn thì type coù theå laø near hay
far.
Ex : mov ax, word ptr var1 ; var1 laø toaùn haïng kieåu
Word
mov bl , byte ptr var2 ; var2 laø toaùn haïng kieåu byte
9/21/2017
Chuong 7 Cac phep dinh vi dia chi
10
Toaùn haïng (Operand)
Caùc toaùn haïng chæ ra nôi chöùa döõ lieäu cho 1 leänh , chæ thò.
Haàu heát caùc leänh Assembly ñeàu coù ñoái soá laø 1 hoaëc 2 toaùn haïng
Coù 1 soá leänh chæ coù 1 toaùn haïng nhö RET, CLC.
Vôùi caùc leänh 2 toaùn haïng thì toaùn haïng thöù 2 laø toaùn haïng
nguoàn (source) – chöùa döõ lieäu hoaëc ñòa chæ cuûa döõ lieäu.
9/21/2017
Chuong 7 Cac phep dinh vi dia chi
11
Toaùn haïng (Operand)
Toaùn haïng ñích giöõ keát quaû (neáu coù yeâu caàu) sau khi
thi haønh leänh.
Toaùn haïng ñích coù theå laø thanh ghi hay Boä nhôù.
Toaùn haïng nguoàn coù theå laø thanh ghi, boä nhôù hay 1 giaù trò
töùc thôøi .
Toaùn haïng soá töùc thôøi coù theå laø soá trong caùc heä ñeám khaùc nhau
vaø ñöôïc vieát theo qui ñònh sau :
Soá heä 2 : xxxxxxxxB (x laø bit nhò phaân)
Soá heä 10 : xxxxxD hay xxxxx (x laø 1 soá heä 10)
Soá heä 16 : xxxxH vaø baét ñaàu baèng soá (x laø 1 soá heä 16)
9/21/2017
Chuong 7 Cac phep dinh vi dia chi
12
Cô cheá ñònh vò ñòa chæ
Caùch xaùc ñònh döõ lieäu trong leänh ñöôïc goïi laø cô
cheá ñònh vò ñòa chæ (addressing mode) chæ ra
nôi caát döõ lieäu
Cô cheá naøy chia laøm 3 loaïi : ñònh vò baèng thanh
ghi, baèng giaù trò töùc thôøi vaø baèng boä nhôù.
MOV AL, BL ; ñònh vò baèng thanh ghi
INC BX ; ñònh vò baèng thanh ghi
Toaùn haïng laø Reg
Leänh seõ ñöôïc thöïc hieän
nhanh hôn
9/21/2017
Chuong 7 Cac phep dinh vi dia chi
13
ĐÒNH VÒ TỨC THỜI
Toaùn haïng töùc thôøi laø döõ lieäu 8 bit hay 16 bit naèm
ngay trong caâu leänh.
Döõ lieäu xöû lyù ñöôïc löu ngay trong leänh
Ex : MOV CL, 61h ; toaùn haïng töùc
thôøi
Maõ maùy cuûa leänh treân laø B161h
Leänh seõ ñöôïc thöïc hieän
nhanh vì döõ lieäu ñöôïc laáy cuøng
vôùi leänh.
9/21/2017
Chuong 7 Cac phep dinh vi dia chi
14
ĐỊNH VỊ THANH GHI
Giá trị của toán hạng được truy xuất nằm
ngay trong thanh ghi của CPU.
Ex : MOV AX,BX ; chuyển nội dung của
thanh ghi BX vào thanh ghi AX
9/21/2017
Chuong 7 Cac phep dinh vi dia chi
15
ĐỊNH VỊ BỘ NHỚ
Ñònh vò giaùn tieáp thanh ghi :
ñòa chæ toaùn haïng khoâng chöùa tröïc tieáp trong leänh maø giaùn
tieáp thoâng qua moät thanh ghi.
Ex : SUB DX, [BX] ;
Laáy döõ lieäu töø vuøng nhôù
Khaùc vôùi leänh SUB DX, BX
Trong chế độ này, địa chỉ Offset của ô nhớ chứa
nộI dung của toán hạng nằm trong các thanh ghi
BX,BP,SI,DI.
Địa chỉ segment ngầm định chứa trong DS nếu dùng
BX,SI,DI
Địa chỉ segment ngầm định chứa trong ES nếu dùng BP
9/21/2017
Chuong 7 Cac phep dinh vi dia chi
16
Ñònh vò giaùn tieáp thanh ghi :
EX1 : MOV
AX, [SI]
Nạp nội dung của ô nhớ mà địa chỉ Offset lưu trong SI và
địa chỉ đoạn lưu trong DS vào AX.
EX2 : MOV
AX, [BP]
Nạp nội dung của ô nhớ mà địa chỉ Offset lưu trong BP
và địa chỉ đoạn lưu trong ES vào AX.
9/21/2017
Chuong 7 Cac phep dinh vi dia chi
17
ĐỊNH VỊ TRỰC TIẾP
Địa chỉ Offset của ô nhớ chứa dữ liệu toán hạng nằm
trực tiếp trong câu lệnh còn địa chỉ segment ngầm
định chứa trong DS.
Ex : MOV BX, [1234]
Nạp nộI dung ô nhớ có địa chỉ DS:1234 BX
9/21/2017
Chuong 7 Cac phep dinh vi dia chi
18
ĐỊNH VỊ CƠ SỞ
Địa chỉ Offset của toán hạng được tính là tổng của nộI
dung thanh ghi BX hoặc BP và 1 độ dịch.
Độ dịch là 1 số nguyên âm hoặc dương. Địa chỉ đọan
là đoạn hiện tại.
9/21/2017
Chuong 7 Cac phep dinh vi dia chi
19
ÑÒA CHÆ HIEÄU DUÏNG
Toaùn haïng boä nhôù duøng trong taäp leänh vi xöû lyù 86 söû duïng
phöông phaùp ñònh ñòa chæ toång hôïp ñöôïc goïi laø ñòa chæ hieäu
duïng.
Ñòa chæ hieäu duïng laø toå hôïp cuûa 3 nhoùm sau ñaët trong daáu [ ].
Nhoùm thanh ghi chæ soá : SI , DI
Nhoùm thanh ghi neàn : BX, BP
Ñòa chæ tröïc tieáp : soá 16 bit
Caùc thanh ghi trong cuøng 1 nhoùm khoâng ñöôïc xuaát hieän trong cuøng 1
ñòa chæ hieäu duïng.
9/21/2017
Chuong 7 Cac phep dinh vi dia chi
20
- Xem thêm -