Với lời lệnh (hình 43b) ta có thể ghi lệnh để: 
- Điều khiể n modem:DTR(D1=1), RTS(D%=1). 
- Xoá mềm( bằng chương trình có IR (D6=1) để xoá về 0 các thanh ghi nội. 
- Xóa cờ báo lỗiER (D4=1) . 
- Ghi cho phép truyền TxEN (D0=1) cho phép nhận RxE(D2=1). 
- Gửi tín hiệu cắt (các bit bằng 0-Break) để cắt dòng tín hiệu liê n tục đang 
truyền. 
- Tìm ký tự đồ ng bộ EH(D7=1) trong chế độ đồng bộ. 
· Thanh ghi trạng thái (hình 43c): dùng để đọc. 
- Sẵn sàng truyền TxRDY (D0=1), sẵn sà ng nhậ n RXRDY(D1=1). 
- Thanh ghi đệm số liệ u rỗng TxE (D2=1). 
- Tuy chỉ có một địa chỉ (CS\=0, A1=1) nhưng ta có thể ghi đượ c 2 lời điều khiển 
chế độ và lời lệnh ở 2 thanh ghi điều khiển khá c nhau vì còn có chung một flip 
flop nội điều khiể n lần lượt và o hai thanh ghi trên.
                
              
                                            
                                
            
 
            
                 114 trang
114 trang | 
Chia sẻ: lvcdongnoi | Lượt xem: 2617 | Lượt tải: 2 
              
            Bạn đang xem trước 20 trang tài liệu Đề tài Thiết kế thi công Kit vi xử lý 8086, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Port 
Moâ taû: Acc ¬ {Port} 
Trong ñoù {Port}laø döõ lieäu cuûa coång coù ñòa chæ laø Port. Port laø 8 ñòa chæ bit cuûa 
coång, noù coù theå coù caùc giaù trò trong khoaûng 00H … FFH. Nhö vaäy ta coù theå coù caùc 
khaû naêng sau: 
· Neáu Acc laø AL thì döõ lieäu 8 bit ñöôïc ñöa vaøo töø Port. 
· Neáu Acc laø AX thì döõ lieäu 16 bit ñöôïc ñöa vaøo töø Port vaø Port + 1 
Coù moät caùch khaùc ñeå bieåu dieãn ñòa chæ coång laø thoâng qua thanh ghi DX. Khi 
duøng thanh ghi DX ñeå chöùa ñòa chæ coång ta seõ coù khaû naêng ñòa chæ hoùa coång meàm 
deûo hôn. Luùc naøy ñòa chæ coång naèm trong daûi 0000H …FFFFH vaø ta vieát leänh theo 
daïng: 
 IN Acc,DX 
Trong ñoù DX phaûi ñöôïc gaùn töø giaù trò öùng vôùi ñòa chæ coång. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø. 
v INC – Increment Destination Register or Memory (Taêng toaùn haïng ñích 
theâm 1) 
Cuù phaùp: INC Ñích 
Moâ taû: Ñích ¬ Ñích + 1 
Trong ñoù toaùn haïng ñích coù theå tìm ñöôïc theo caùc cheá ñoä ñònh ñòa chæ khaùc 
nhau. Löu yù laø neáu Ñích=FFH (hoaëc FFFFH) thì Ñích+1=00H (hoaëc 0000H) maø 
khoâng aûnh höôûng ñeán côø CF. Leänh naøy cho keát quaû töông ñöông nhö leänh ADD 
Ñích,1 nhöng chaïy nhanh hôn. 
Luaän vaên toát nghieäp trang95 
GVHD: NGUYEÃN ÑÌNH PHUÙ SVTH: NGOÂ VAÊN BÌNH 
Caäp nhaät: AF, OF, PF, SF, ZP 
Khoâng taùc ñoäng: CF 
v INT –Interrupt Program Execution (Ngaét, giaùn ñoïan chöông trình ñang 
chaïy) 
Cuù phaùp: INT N, N=0…FFH 
Moâ taû: Caùc thao taùc cuûa 8086 khi chaïy leänh INT N: 
1. SP ¬ SP-2, {SP} ¬ FR 
2. IF ¬ 0 (caám caùc ngaét khaùc taùc ñoäng), TF ¬ 0 (chaïy suoát) 
3. SP ¬ SP-2, {SP} ¬ CS. 
4. SP ¬ SP-2, {SP} ¬ IP. 
5. {N´4} ® IP, {N´4+2} ® CS. 
Moãi leänh ngaét öùng vôùi moät chöông trình phuïc vuï ngaét khaùc nhö töø ñòa chæ laáy 
töø baûng vector ngaét. Baûng naøy goàm 256 vector, chöùa ñòa chæ cuûa caùc chöông trình 
phuïc vuï ngaét töông öùng vaø chieám 1Kbyte RAM coù ñòa chæ thaáp nhaát cuûa boä nhôù. 
Chöông trình phuïc vuï ngaét cuõng coù theå ñöôïc goïi laø chöông trình con phuïc vuï ngaét vì 
caùch thöùc toå chöùc vaø quan heä giöûa noù vôùi chöông trình bò ngaét cuõng gioáng nhö caùch 
thöùc toå chöùc vaø quan heä giöõa chöông trình chính vaø chöông trình con. 
v INTO – Interrupt on Overflow (Ngaét neáu coù traøn) 
Neáu coù traøn (OF = 1) thì leänh naøy ngaét coâng vieäc ñang laøm cuûa vi xöû lyù vaø thöïc 
hieän leänh ngaét INT 4. 
v IRET – Interrupt Return (Trôû veà chöông trình chính töø chöông trình (con) 
phuïc vuï ngaét 
Nhö ñaõ trình baøy ôû leänh CALL, taïi cuoái chöông trình con phaûi coù leänh trôû veà 
(RET) ñeå boä vi xöû lyù töï ñoäng laáy laïi ñòa chæ trôû veà chöông trình chính. Trong tröôøng 
hôïp chöông trình con phuïc vuï ngaét, ñeå trôû veà chöông trình chính vôùi ñaày ñuû thoâng tin 
caàn thieát veà ñòa chæ vaø traïng thaùi, taát nhieân cuûng caàn phaûi coù leänh vôùi caùc taùc ñoäng 
töông öùng: leänh IRET. Leänh naøy, ngoaøi vieäc töï ñoäng laáy laïi ñòa chæ trôû veà chöông 
trình chính, coøn laáy laïi thanh ghi côø ñaõ ñöôïc caát giöõ tröôùc khi chaïy chöông trình con 
phuïc vuï ngaét. 
v JA/JNBE – Jump if Above/Jump if Not Below or Equal (Nhaûy neáu cao 
hôn/Nhaûy neá khoâng thaáp hôn hoaëc baèng) 
Cuù phaùp: JA NHAN 
 JNBE NHAN 
Moâ taû: IP ¬ IP + Dòch chuyeån. 
Hai leänh treân bieåu dieãn cuøng moät thao taùc: nhaûy (coù ñieàu kieän) tôùi NHAN neáu 
CF + ZF = 0. Quan heä “treân”, “cao hôn” (abve) vaø “döôùi”, “thaáp hôn” (below) laø caùc 
quan heä daønh cho vieäc so saùnh (do leänh CMP thöïc hieän) ñoä lôùn cuûa hai soá khoâng 
daáu. Nhaõn NHAN phaûi naèm cach xa (dòch ñi moät khoaûng) –128…+127 byte so vôùi 
leänh tieáp theo sau leänh JA/JNBE. Chöông trình dòch seõ caên cöù vaøo vò trí NHAN ñeå 
xaùc ñònh vò trí dòch chuyeån. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø 
Luaän vaên toát nghieäp trang96 
GVHD: NGUYEÃN ÑÌNH PHUÙ SVTH: NGOÂ VAÊN BÌNH 
v JBE/JNA – Jump if Below or Equal/Jump Not Above (Nhaûy neáu thaáp hôn 
hoaëc baèng/Nhaûy neáu khoâng cao hôn. 
Cuù phaùp: JBE NHAN 
 JNA NHAN 
Moâ taû: IP ¬ IP + Dòch chuyeån 
Hai leänh treân bieåu dieån cuøng moät thao taùc: nhaûy coù ñieàu kieän tôùi NHAN neáu 
CF + ZF = 1. Quan heä “treân“, “cao hôn” (above) vaø “döôùi”, “thaáp hôn” (below) laø 
caùc quan heä daønh cho vieäc so saùnh (do leänh CMP thöïc hieän) ñoä lôùn cuûa hai soá khoâng 
daáu. Nhaõn NHAN phaûi naèm cach xa (dòch ñi moät khoaûng) –128… +127 byte so vôùi 
leänh tieáp theo sau leänh JBE/JNA. Chöông trình dòch seõ caên cöù vaøo vò trí NHAN ñeå 
xaùc ñònh vò trí dòch chuyeån. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø. 
v JCZX – Jump if CX Register if Zero (Nhaûy neáu noäi dung thanh ñeám roãng). 
Cuù phaùp: JCZX NHAN 
Moâ taû: IP ¬ IP + Dòch chuyeån. 
Ñaây laø leänh nhaûy (coù ñieàu kieän) tôùi NHAN neáu CX = 0 vaø khoâng coù lieân heä gì 
vôùi côø ZF. Nhaõn NHAN phaûi naèm caùch xa (dòch ñi moät khoaûng) –128… +127 byte 
so vôùi leänh tieáp theo sau leänh JCZX. Chöông trình dòch seõ caên cöù vaøo vò trí NHAN 
ñeå xaùc ñònh vò trí dòch chuyeån. 
Leänh naøy khoâng aûnh höôûng ñeán caùc côø. 
v JE/JZ – Jump if Equal/Jump if Zero (Nhaûy neáu baèng nhau/Nhaûy neáu keát 
quaû baèng khoâng) 
Cuù phaùp: JE NHAN 
 JZ NHAN 
Moâ taû: IP ¬ IP + Dòch chuyeån 
Hai leänh treân bieåu dieãn cuøng moät thao taùc: nhaûy coù ñieàu kieän tôùi NHAN neáu 
ZF = 1. Nhaõn NHAN phaûi naèm cach xa (dòch ñi moät khoaûng) –128…+127 byte so 
vôùi leänh tieáp theo sau leänh JE/JZ. Chöông trình dòch seõ caên cöù vaøo vò trí NHAN ñeå 
xaùc ñònh vò trí dòch chuyeån. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø 
v JG/JNLE – Jump if Greater than/Jump if Not Less than or Equal: (Nhaûy 
neáu lôùn hôn/Nhaûy neáu khoâng beù hôn hoaëc baèng) 
Cuù phaùp: JG NHAN 
 JNLA NHAN 
Moâ taû: IP ¬ IP + dòch chuyeån 
Hai leänh treân bieåu dieãn cuøng moät thao taùc: nhaûy (coù ñieàu kieän) tôùi NHAN neáu 
(SF Å OF) + ZF = 0. Quan heä “lôùn hôn” (greater than) vaø “beù hôn” (less than) laø 
caùc quan heä daønh cho vieäc so saùnh (do leänh CMP thöïc hieän) cuûa hai soá coù daáu. Lôùn 
hôn coù nghiaõ laø döông hôn. Nhaõn NHAN phaûi naèm caùch xa (dòch ñi moät khoaûng) –
128 …+127 byte so vôùi leänh tieáp theo sau leänh JD/JNLE. Chöông trình dòch seõ caên 
cöù vaøo vò trí NHAN ñeå xaùc ñònh giaù trò dòch chuyeån. 
Luaän vaên toát nghieäp trang97 
GVHD: NGUYEÃN ÑÌNH PHUÙ SVTH: NGOÂ VAÊN BÌNH 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø. 
v JGE/JNL – Jump if Greater than or Equal/Jump if Not Less than (Nhaûy 
neáu lôùn hôn hoaëc baèng/nhaûy neáu khoâng beù hôn) 
Cuù phaùp: JGE NHAN 
 JNL NHAN 
Moâ taû: IP ¬ IP + Dòch chuyeån 
Hai leänh treân bieåu dieãn cuøng moät thao taùc: nhaûy (coù ñieàu kieän) tôùi NHAN neáu 
(SF Å OF) + ZF = 0. Quan heä “lôùn hôn” (greater than) vaø “beù hôn” (less than) laø 
caùc quan heä daønh cho vieäc so saùnh (do leänh CMP thöïc hieän) cuûa hai soá coù daáu. Lôùn 
hôn coù nghiaõ laø döông hôn. Nhaõn NHAN phaûi naèm caùch xa (dòch ñi moät khoaûng) –
128 …+127 byte so vôùi leänh tieáp theo sau leänh JGE/JNL. Chöông trình dòch seõ caên 
cöù vaøo vò trí NHAN ñeå xaùc ñònh giaù trò dòch chuyeån. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø. 
v JL/JNGE – Jump if Less Than/Jump if Not Greater than or Equal (Nhaûy 
neáu beù hôn/nhaûy neáu khoâng lôùn hôn hoaëc baèng) 
Cuù phaùp: JL NHAN 
 JNGE NHAN 
Moâ taû: IP ¬ IP + Dòch chuyeån. 
Hai leänh treân bieåu dieãn cuøng moät thao taùc: nhaûy (coù ñieàu kieän) tôùi NHAN neáu 
(SF Å OF) + ZF = 0. Quan heä “lôùn hôn” (greater than) vaø “beù hôn” (less than) laø 
caùc quan heä daønh cho vieäc so saùnh (do leänh CMP thöïc hieän) cuûa hai soá coù daáu. Lôùn 
hôn coù nghiaõ laø döông hôn. Nhaõn NHAN phaûi naèm caùch xa (dòch ñi moät khoaûng) –
128 …+127 byte so vôùi leänh tieáp theo sau leänh JL/JNGE. Chöông trình dòch seõ caên 
cöù vaøo vò trí NHAN ñeå xaùc ñònh giaù trò dòch chuyeån. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø. 
v JLE/JNG – jump if Less than or Equal/Jump if Not Greater than (nhaûy 
neáu beù hôn hoaëc baèng/Nhaûy neáu khoâng lôùn hôn) 
Cuù phaùp: JLE NHAN 
 JNG NHAN 
Moâ taû: IP ¬ IP + Dòch chuyeån 
Hai leänh treân bieåu dieãn cuøng moät thao taùc: nhaûy (coù ñieàu kieän) tôùi NHAN neáu 
(SF Å OF) + ZF = 0. Quan heä “lôùn hôn” (greater than) vaø “beù hôn” (less than) laø 
caùc quan heä daønh cho vieäc so saùnh (do leänh CMP thöïc hieän) cuûa hai soá coù daáu. Lôùn 
hôn coù nghiaõ laø döông hôn. Nhaõn NHAN phaûi naèm caùch xa (dòch ñi moät khoaûng) -
128 …+127 byte so vôùi leänh tieáp theo sau leänh JLE/JNG. Chöông trình dòch seõ caên 
cöù vaøo vò trí NHAN ñeå xaùc ñònh giaù trò dòch chuyeån. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø. 
v JMP – Unconditional Jump to Specified Destination (Nhaûy khoâng ñieàu 
kieän ñeán moät ñích naøo ñoù) 
Leänh naøy khieán boä vi xöû lyù 8086 baét ñaàu thöïc hieän moät leänh môùi ñöôïc moâ taû 
trong leänh. Leänh naøy coù caùc cheá ñoä ñòa chæ gioáng nhö leänh CALL vaø noù phaân bieät 
Luaän vaên toát nghieäp trang98 
GVHD: NGUYEÃN ÑÌNH PHUÙ SVTH: NGOÂ VAÊN BÌNH 
nhaûy xa vaø nhaûy gaàn. Tuøy thuoäc vaøo ñoä daøi cuûa böôùc nhaûy chuùng ta phaân bieät 5 
kieåu leänh nhaûy khaùc nhau: 3 kieåu nhaûy gaàn 2 kieåu nhaûy xa vôùi ñoä daøi leänh khaùc 
nhau. Moãi oâ treân caùc leänh töông öùng duøng ñeå ghi leänh. nhö vaäy leänh nhaûy coù ñoä daøi 
töø 2 ñeán 5 byte. 
Sau ñaây laø caùc daïng leänh nhaûy khoâng ñieàu kieän: 
· JMP NHAN 
Leänh môùi baét ñaàu taïi ñòa chæ öùng vôùi nhaõn NHAN. Chöông trình dòch seõ caên cöù 
vaøo khoaûng dòch giöõa nhaõn vaø leänh nhaûy ñeå xaùc ñònh xem ñoù laø: 
 + Nhaûy ngaén (short jump): 
Trong tröôøng hôïp naøy nhaõn NHAN phaûi naèm caùch xa (dòch ñi moät khoaûng) 
nhieàu nhaát laø –128.. + 127 byte so vôùi leänh tieáp theo sau leänh JMP. Chöông trình 
dòch caên cöù vaøo vò trí NHAN ñeå xaùc ñònh giaù trò dòch chuyeån môû roäng daáu cho noù. 
Sau ñoù: 
 IP ¬ IP + Dòch chuyeån 
Ñaây laø leänh nhaûy tröïc tieáp vì dòch chuyeån ñöôïc ñeå tröïc tieáp trong maõ leänh. 
Ñeå ñònh höôùng cho chöông trình dòch laøm vieäc neân vieát leänh döôùi daïng: 
 JMP SHORT NHAN 
 + Nhaûy gaàn (near jump): 
Trong tröôøng hôïp naøy nhaõn NHAN phaûi naèm caùch xa (dòch ñi moät khoaûng 
nhieàu nhaát laø –32768..+32767 byte so vôùi leänh tieáp theo sau leänh JMP. Chöông trình 
dòch seõ caên cöù vaøo vò trí NHAN ñeå xaùc ñònh giaù trò dòch chuyeån. Sau ñoù: 
 IP ¬ IP + Dòch chuyeån 
Ñaây laø leänh nhaûy tröïc tieáp vì dòch chuyeån ñöôïc ñeå tröïc tieáp trong maõ leänh. 
Ñeå ñònh höôùng cho chöông trình dòch laøm vieäc neân vieát leänh döôùi daïng : 
 JMP NEAR NHAN 
 + Nhaûy xa (far jump): 
Trong tröôøng hôïp naøy nhaõn NHAN naèm ôû ñoaïn maõ khaùc so vôùi leänh tieáp theo 
sau leänh JMP. Chöông trình dòch seõ caên cöù vaøo vò trí NHAN ñeå xaùc ñònh giaù trò ñòa 
chæ nhaøy ñeán (CS:IP cuûa NHAN). Sau ñoù: 
 Nhaûy ngaén: 
 IP ¬ IP cuûa NHAN 
 CS ¬ CS cuûa NHAN 
Ñaây laø leänh nhaûy tröïc tieáp vì ñòa chæ nhaûy ñeán ñöôïc ñeå tröïc tieáp trong maõ leänh. 
Ñeå ñònh höôùng cho chöông trình dòch laøm vieäc neân vieát leänh döôùi daïng: 
 JMP FAR NHAN 
NHAN trong tröôøng hôïp naøy phaûi ñöôïc khai laø: 
 NHAN LABEL FAR 
· JMP BX 
Ñaây laø leänh nhaûy gaàn tröôùc ñoù BX phaûi chöùa ñòa chæ leäch cuûa leänh ñònh nhaûy 
ñeán trong ñoaïn CS. Khi thöïc hieän leänh naøy 
 IP ¬ BX 
Luaän vaên toát nghieäp trang99 
GVHD: NGUYEÃN ÑÌNH PHUÙ SVTH: NGOÂ VAÊN BÌNH 
Ñaây cuõng laø leänh nhaûy giaùn tieáp vì ñòa chæ leäch naèm trong thanh ghi. 
Ñeå ñònh höôùng cho chöông trình dòch laøm vieäc neân vieát leänh döôùi daïng: 
 JMP NEAR PTR BX 
· JMP [BX] 
Ñaây laø leänh nhaûy gaàn IP môùi ñöôïc laáy töø noäi dung 2 oâ nhôù do BX vaø BX+1 chæ 
ra cho ñoaïn DS (SI, DI coù theå duøng thay choã cuûa BX). 
Ñaây cuõng laø leänh nhaûy giaùn tieáp vì ñòa chæ leäch naèm trong oâ nhôù. 
Ñeå ñònh höôùng cho chöông trình dòch laøm vieäc neân vieát leänh döôùi daïng: 
 JMP WORD PTR [BX] 
Moät bieán daïng khaùc cuûa leänh treân thu ñöôïc khi ta vieát döôùi daïng : 
 JMP DWORD PTR [BX] 
Ñaây laø leänh nhaûy xa öùng. Ñòa chæ nhaûy ñeán öùng vôùi CS:IP, giaù trò gaùn cho IP vaø 
CS ñöôïc chöùc trong 4 oâ nhôù do BX vaø BX+1 (cho IP) vaø BX+2 vaø BX+3 (cho CS) 
chæ ra trong ñoaïn DS (SI, DI coù theå duøng thay choã cuûa BX). 
Ñaây cuõng laø leänh nhaûy giaùn tieáp vì ñòa chæ leäch vaø ñòa chæ cô sôû naèm trong oâ 
nhôù. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø. 
v JNA – Xem JBE 
v JNAE – Xem JB 
v JNB – Xem JAE 
v JNBE – Xem JA 
v JNC – Xem JAE 
v JNE/JNZ – Jump if Not Equal/Jump if Not Zero (Nhaûy neáu khoâng baèng 
nhau/Nhaûy neáu keát quaû khoâng roãng) 
Vieát leänh : JNE NHAN 
 JNZ NHAN 
Moâ taû : IP ¬ IP + Dòch chuyeån 
 Hai leänh treân bieåu dieãn cuøng moät thao taùc : nhaûy (coù ñieàu kieän) tôùi NHAN 
neáu ZF = 0. Nhaõn NHAN phaûi naèm caùch xa (dòch ñi moät khoaûng) –128…+127 byte 
so vôùi leänh tieáp theo sau leänh JNE/JNZ. Chöông trình dòch seõ caên cöù vaøo vò trí 
NHAN ñeå xaùc ñònh giaù trò dòch chuyeån. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø. 
v JNG – Xem JLE 
v JNGE – Xem JL 
v JNL – Xem JGE 
v JNLE – Xem JG 
v JNO – Jump if No Overflow (Nhaûy neáu khoâng traøn) 
Vieát leänh: JNO NHAN 
Moâ taû: IP ¬ IP + Dòch chuyeån 
Ñaây laø leänh nhaûy (coù ñieàu kieän) tôùi NHAN neáu OF=0, töù khoâng xaûy ra traøn sau 
khi thöïc hieän caùc pheùp toaùn vôùi caùc soá coù daáu. Nhaõn NHAN phaûi naèm caùch xa (dòch 
Luaän vaên toát nghieäp trang100 
GVHD: NGUYEÃN ÑÌNH PHUÙ SVTH: NGOÂ VAÊN BÌNH 
ñi moät khoaûng) –128…+127 byte so vôùi leänh tieáp theo sau leänh JNO. Chöông trình 
dòch seõ caên cöù vaøo vò trí NHAN ñeå xaùc ñònh giaù trò dòch chuyeån. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø 
v JNZ - Xem JNE 
v JO - Jump if Overflow (nhaûy neáu traøn) 
Vieát leänh : JO NHAN 
Moâ taû : IP ¬ IP + Dòch chuyeån. 
Ñaây laø leänh nhaûy (coù ñieàu kieän) tôùi NHAN neáu OF =1, töùc xaûy ra traøn sau khi 
thöïc hieän caùc pheùp toaùn vôùi caùc soá coù daáu. Nhaõn NHAN phaûi naèm caùch xa (dòch ñi 
moät khoaûng (-128…+127 byte so vôùi leänh tieáp theo sau leänh JO. Chöông trình dòch 
seõ caên cöù vaøo vò trí NHAN ñeå xaùc ñònh giaù trò dòch chuyeån. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø. 
v JP/JPE - Jump if Parity/Jump if Parity Even (Nhaûy neáu parity chaün) 
Cuù phaùp: JP NHAN 
 JPE NHAN 
Moâ taû : IP ¬ IP + Dòch chuyeån 
Hai leänh treân bieåu dieãn cuøng moät thao taùc : Nhaûy (coù ñieàu kieän) tôùi NHAN neáu 
PE=1. Nhaõn NHAN phaûi naèm caùch xa (dòch ñi moät khoaûng) - 128... byte so vôùi leänh 
tieáp theo sau leänh JP/JPE. Chöông trình dòch seõ caên cöù vaøo vò trí NHAN ñeå xaùc ñònh 
giaù trò dòch chuyeån. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø. 
v JPE - Xem JP 
v JPO - Xem JNP 
v JS - Jump if Signed (Jump if Negative) (Nhaûy neáu keát quaû aâm). 
Cuù phaùp: JS NHAN 
Moâ taû : IP ¬ IP + Dòch chuyeån. 
Ñaây laø leänh nhaûy (coù ñieàu kieän) tôùi NHAN SF=1, töùc keát quaû laø aâm sau khi 
thöïc hieän caùc pheùp toaùn vôùi caùc soá coù daáu. Nhaõn NHAN phaûi naèm caùch xa (dòch ñi 
moät khoaûng) -128…+127 byte so vôùi leänh tieáp theo sau leänh JS. Chöông trình dòch 
seõ caên cöù vaøo vò trí NHAN ñeå xaùc ñònh giaù trò dòch chuyeån. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø. 
v JZ - Xem JE 
v LAHF - Load AH with the low byte of the Flag Register (Naïp byte thaáp 
cuûa thanh côø vaøo AH). 
Duøng leänh naøy phoái hôïp vôùi leänh PUSH AX thì coù theå moâ phoûng leänh PUSH 
PSW cuûa boä vi xöû lyù 8085 treân 8086 (leänh PUSH PSW cuûa vi xöû lyù 8085 caát thanh 
ghi côø vaø Acc cuûa noù vaøo ngaên xeáp). 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø. 
v DS - Load Register and DS with Words from Memory Naïp moät töø (töø boä 
nhôù) vaøo thanh ghi cho trong leänh vaø moät töø tieáp theo vaøo DS). 
Cuù phaùp: LDS Ñích, Goác 
Luaän vaên toát nghieäp trang101 
GVHD: NGUYEÃN ÑÌNH PHUÙ SVTH: NGOÂ VAÊN BÌNH 
Trong ñoù : 
 + Ñích laø moät trong caùc thanh ghi : AX, BX, CX, DX, SP, BP, SI, DI. 
 + Goác laø oâ nhôù trong ñoaïn DS ñöôïc chæ roõ trong leänh. 
Moâ taû : Ñích ¬ Goác, DS ¬ Goác + 2. 
Ñaây laø leänh ñeå naïp vaøo thanh ghi ñaõ choïn vaø vaøo DS töø 4 oâ nhôù lieân tieáp. 
Moät trong nhöõng öùng duïng cuûa leänh naøy laø laøm cho SI vaø DS chæ vaøo ñòa chæ 
ñaàu cuûa vuøng nhôù chöùa chuoãi goác tröôùc khi duøng ñeán leänh thao taùc chuoãi. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø. 
v LEA - Load Effective Address (Naïp ñòa chæ hieäu duïng vaøo thanh ghi). 
Cuù phaùp: LEA Ñích, Goác 
Trong ñoù: 
 + Ñích thöôøng laø moät trong caùc thanh ghi: BX, CX, DX, BP, SI, DI. 
 + Goác laø teân bieán trong ñoaïn DS ñöôïc chæ roõ leänh hoaëc oâ nhôù cuï theå. 
Moâ taû: Ñích ¬ Ñòa chæ leänh cuûa Goác, hoaëc 
 Ñích ¬ Ñòa chæ hieäu duïng cuûa goác. 
Ñaây laø leänh ñeå tìm ñòa chæ leäch cuûa bieán hoaëc ñòa chæ cuûa oâ nhôù choïn laøm goác 
roài naïp vaøo thanh ghi ñaõ choïn 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø 
v LES – Load Register and ES with Words from Memory Naïp moät töø töø boä 
nhôù) vaøo thanh ghi cho trong leänh vaø moät töø tieáp theo vaøo ES) 
Cuù phaùp: LES Ñích, Goác 
 Trong ñoù : 
 + Ñích laø moät trong caùc thanh ghi : AX, BX, CX, DX, SP, BP, SI, DI. 
 + Goác laø oâ nhôù tong ñoaïn DS ñöôïc chæ roõ trong leänh. 
Moâ taû : Ñích ¬ Goác, ES ¬ Goác + 2. 
Ñaây laø leänh ñeå naïp vaøo thanh ghi ñaõ choïn vaø vaøo ES töø 4 oâ nhôù lieân tieáp. 
Moät trong nhöõng öùng duïng cuûa leänh naøy laø laøm cho DI vaø ES chæ vaøo ñòa chæ 
daáu cuûa vuøng nhôù chöùa chuoãi ñích tröôùc khi duøng ñeán leänh thao taùc chuoãi. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø 
Naïp vaøo DI noäi dung 2 oâ nhôù do BX vaø BX + 1 chæ ra naïp vaøo ES noäi dung 2 oâ 
nhôù tieáp theo do BX + 2 vaø BX + 3 chæ ra. Caùc oâ nhôù naøy ñeàu naèm trong ñoaïn döõ 
lieäu DS vaø chöùa ñòa chæ cuûa chuoåi ñích. Do vaäy sau ñoù ES:DI chæ vaøo ñaàu chuoåi ñích 
caàn thao taùc. 
v LOCK – Assert Bus Lock Signal (Ñöa ra tín hieäu khoùa bus) 
Leänh LOCK duøng ñaët tröôùc caùc leänh maø khi chaïy noù coù nguy cô gaây loãi do khaû 
naêng xaûy ra tranh chaáp trong vieäc söû duïng bus giöõa boä vi xöû lyù 8086 vaø caùc boä xöû lyù 
khaùc trong heä thoáng ña xöû lyù. Neáu coù leänh LOCK ñaët tröôùc moät leänh naøo ñoù, thì khi 
chaïy leänh naøy, 8086 ñöa ra tín hieäu khoùa bus. Tín hieäu naøy seõ noái ra thieát bò ñieàu 
khieån bus ngoaøi ñeå caám caùc boä xöû lyù khaùc trong heä thoáng söû duïng bus. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø. 
Luaän vaên toát nghieäp trang102 
GVHD: NGUYEÃN ÑÌNH PHUÙ SVTH: NGOÂ VAÊN BÌNH 
Leänh XCHG caàn 2 laàn thaâm nhaäp bus ñeå hoaøn taát vieäc thöïc hieän leänh, do ñoù 
caàn ñaët sau LOCK ñeå traùnh nguy cô tranh chaáp bus coù theå xaûy ra trong heä thoáng ña 
xöû lyù. 
v LODS/LODSB/LODSW – Load String Byte/Word into AL/AX (Naïp vaøo 
AL/AX 1 phaàn töû cuûa chuoãi byte/töø) 
Cuù phaùp: LODS Chuoãi goác 
 LODSB 
 LODSW 
Moâ taû : AL ¬ Phaàn töû hieän thôøi, SI ¬ SI + tuøy theo DF, neáu laø chuoãi 
byte 
AX ¬ Phaàn töû hieän thôøi, SI ¬ SI + 2 tuøy theo DF, neáu laø chuoãi 
töø 
(Phaàn töû hieän thôøi cuûa chuoãi laø do DS : SI hieän thôøi chæ ra) 
Leänh LODS naïp vaøo AL/AX 1 bytes/ töø (1 phaàn töû cuûa chuoãi ñaõ ñöôïc ñònh 
nghóa tröôùc laø chuoãi goàm caùc byte hoaëc töø do SI chæ ra trong ñoaïn DS, sau ñoù SI töï 
ñoäng taêng/giaûm ñeå chæ vaøo phaàn töû tieáp theo tuøy theo côø höôùng. Khi phaûi dòch leänh 
LODS Chuoãigoác, chöông trình dòch duøng teân Chuoãigoác ñeå xaùc ñònh xem luùc khai 
baùo thì Chuoãigoác coù caùc phaàn töû laø byte hay töø. Muoân chæ roõ cho chöông trình dòch 
hôïp ngöõ raèng ta laøm vieäc vôùi chuoãi caùc byte hoaëc caùc töø, ta cuõng coù theå duøng leänh 
LODSB hoaëc LODSW. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø 
v LOOP – Jump to Speciafied Label if CX # O after Autodecrement (laëp laïi 
ñoaïn chöông trình do nhaõn chæ ra cho ñeán khi CX = 0. 
Cuù phaùp: LOOP NHAN 
Moâ taû: 
Leänh naøy duøng ñeå laäp laïi ñoaïn chöông trình (goàm caùc leänh naèm trong khoaûng 
töø nhaõn NHAN ñeán heát leänh LOOP NHAN) cho ñeán khi soá laàn laëp CX = 0. Ñieàu 
naøy coù nghóa laø tröôùc khi vaøo voøng laëp ta phaûi ñöa soá laàn laëp mong muoán vaøo thanh 
ghi CX vaø sau moãi laàn thöïc hieän leänh LOOP NHAN thì ñoàng thôøi CX töï ñoäng giaûm 
ñi 1 (töùc laø CX ¬ CX – 1) 
Nhaõn NHAN phaûi naèm caùch xa dòch ñi moät khoaûng) – 128 byte so vôùi leänh tieáp 
theo sau leänh LOOP. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø 
v LOOPE/LOOPZ – Loop White CX # O and ZF = 1 (Laëp laïi ñoaïn chöông 
trình do nhaõn chæ ra cho ñeán khi CX=0 hoaëc ZF = 0) 
Cuù phaùp: LOOPE NHAN 
 LOOPZ NHAN 
Moâ taû: 
Leänh naøy duøng ñeå laäp laïi ñoaïn chöông trình (goàm caùc leänh naèm trong khoaûn töø 
nhaõn NHAN ñeán heát leänh LOOPE NHAN hoaëc LOOPZ NHAN) cho ñeán khi soá laàn 
laëp CX = 0, hoaëc ZF = 0. Ñieàu naøy coù nghóa laø tröôùc khi vaøo voøng laëp ta phaûi ñöa soá 
Luaän vaên toát nghieäp trang103 
GVHD: NGUYEÃN ÑÌNH PHUÙ SVTH: NGOÂ VAÊN BÌNH 
laàn laëp mong muoán vaøo thanh ghi CX vaø sau moãi laàn thöïc hieän leänh LOOP NHAN 
thì ñoàng thôøi CX töï ñoäng giaûm ñi 1 (töùc laø CX ¬ CX – 1) 
Nhaõn NHAN phaûi naèm caùch xa (dòch ñi moät khoaûng) –128 byte so vôùi leänh tieáp 
theo sau leänh LOOPE / LOOPZ. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø. 
v LOOPNE/LOOPNZ – Loop While CX # O and ZF = 0 (Laëp laïi ñoaïn 
chöông trình do nhaõn chæ ra cho ñeán khi CX = 0 hoaëc ZF = 1) 
Cuù phaùp: LOOPE NHAN 
 LOOPZ NHAN 
Moâ taû: 
Leänh naøy duøng ñeå laäp laïi ñoaïn chöông trình (goàm caùc leänh naèm trong khoaûng 
töø nhaõn NHAN ñeán heát leänh LOOPNE NHAN hoaëc LOOPNZ NHAN) cho ñeán khi 
soá laàn laëp CX = 0 hoaëc ZF = 1. Ñieàu naøy coù nghóa laø tröôùc khi vaøo voøng laëp ta phaûi 
ñöa soá laàn laëp mong muoán vaøo thanh ghi CX vaø sau moãi laàn thöïc hieän leänh LOOP 
NHAN thì ñoàng thôøi CX töï ñoäng giaûm ñi 1 (töùc laø CX ¬ CX – 1) 
Nhaõn NHAN phaûi naèm caùch xa (dòch ñi moät khoaûng) – 128 byte so vôùi leänh 
tieáp theo sau leänh LOOPNE/LOOPNZ. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø 
LOOPNZ – Xem LOOPNE 
LOOPZ – Xem LOOPE 
v MOV – Move a Word or Byte (Chuyeån moät töø hay moät byte) 
Cuù phaùp: MOV Ñích, Goác 
Moâ taû : Ñích ¬ Goác 
Trong ñoù toaùn haïng ñích vaø goác coù theå tìm ñöôïc theo caùc cheá ñoä ñòa chæ khaùc 
nhau, nhöng phaûi coù cuøng ñoä daøi vaø khoâng ñöôïc pheùp ñoàng thôøi laø 2 oâ nhôù hoaëc 2 
thanh ghi ñoaïn. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø. 
v MOVS/MOVSB/MOVSW – Move String Byte or String Word (Chuyeån 1 
phaàn töû cuûa 1 chuoãi sang moät chuoãi khaùc) 
Cuù phaùp: MOVS Chuoãiñích, Chuoãigoác 
 MOVSB 
 MOVSW 
Moâ taû : Phaàn töû Chuoãiñích ¬ Phaàn töû Chuoãigoác 
Leänh naøy duøng chuyeån töøng byte hay töøng töø cuûa chuoãi goác sang chuoãi ñích 
trong ñoù: 
+ DS:SI laø ñòa chæ cuûa phaàn töû trong chuoãi goác. 
 + ES:DI laø ñòa chæ cuûa phaàn töû trong chuoãi ñích. 
 + Sau moãi laàn chuyeån SI ¬ SI + 1. DI ¬ DI + 1 hoaëc SI ¬ SI + 2. DI ¬ DI + 
2 moät caùch töï ñoäng tuøy thuoäc côø höôùng DF laø 0/1 vaø chuoãi laø chuoãi byte hoaëc chuoãi 
töø. 
Luaän vaên toát nghieäp trang104 
GVHD: NGUYEÃN ÑÌNH PHUÙ SVTH: NGOÂ VAÊN BÌNH 
Coù 2 caùch ñeå chæ ra chuoãi byte hoaëc chuoãi töø. Caùch ñaàu tieân laø ta khai roõ baèng 
teân chuoãi nguoàn vaø chuoãi ñích laø loaïi gì ngay töø ñaàu chöông trình. Caùch thöù hai laø ta 
theâm vaøo leänh MOVS ñuoâi “B” cho chuoãi byte hoaëc ñuoâi “W” cho chuoãi töø (xem 
moâ taû caùch söû duïng taïi leänh COMPS). 
Leänh MOVS/MOVSB/MOVSW coù theå duøng keøm vôùi leän REPE hoaëc REPNE 
ñeå so saùnh taát caû caùc phaàn töû trong chuoãi. 
v MUL – Multiply Unsigned Byte or Word (Nhaõn soá khoâng daáu) 
Cuù phaùp: MUL Goác 
Trong ñoù toaùn haïng Goác laø soá nhaân vaø coù theå tìm ñöôïc theo caùc cheá ñoä ñòa chæ 
khaùc nhau. 
Moâ taû: 
 Tuøy theo ñoä daøi cuûa toaùn haïng Goác ta coù 2 tröôøng hôïp toå chöùc pheùp nhaân, 
choã ñeå ngaàm ñònh cho soá bò nhaân vaø keát quaû. 
+ Neáu Goác laø soá 8 bit : AL x Goác 
 soá bò nhaân phaûi laø soá 8 bit ñeå trong AL. 
 sau khi nhaân : AX ¬ tích 
 + Neáu Goác laø soá 16 bit : AX x Goác 
 soá bò nhaân phaûi laø soá 16 bit ñeå trong AX. 
 sau khi nhaân : DXAX ¬ tích 
Neáu byte cao (hoaëc 16 bit cao) cuûa 16 (hoaëc 32) bit keát quaû chöùa 0 thì CF = OF 
= 0. 
Nhö vaäy caùc côø CF vaø OF seõ baùo cho ta bieát coù theå boû ñi bao nhieâu soá 0 trong 
keát quaû. 
Caäp nhaät : CF, OF 
Khoâng xaùc ñònh : AF, PF, SF, ZP 
v NEG – Negate a Operand (Form its 2’s Complement) (Laáy buø hai cuûa 
moät toaùn haïng, ñaûo daáu cuûa moät toaùn haïng). 
Cuù phaùp: NEG Ñích 
Trong ñoù toaùn haïng ñích coù theå tìm ñöôïc theo caùc cheá ñoä ñòa chæ khaùc nhau. 
Moâ taû : Ñích ¬ 0 - (Ñích) 
Ñieàu naøy hoaøn toaøn töông ñöông vôùi vieäc laáy (Ñích + 1) laøm keát quaû. Neáu ta 
laáy buø hai cuûa –128 hoaëc –32768 thì ta seõ ñöôïc keát quaû khoâng ñoåi nhöng côø 
OF = 1 ñeå baùo laø keát quaû bò traøn (vì soá döông lôùn nhaát bieåu dieãn ñöôïc laø +127 vaø 
+32767) 
Caäp nhaät : AF, CF, OF, PF, SF, ZF. 
v NOP – No Operation (CPU khoâng laøm gì) 
Leänh naøy khoâng thöïc hieän moät coâng vieäc gì ngoaïi tröø vieäc taêng noäi dung cuûa 
IP vaø tieâu toán 3 chu kyø ñoàng hoà. Noù thöôøng ñöôïc duøng ñeå tính thôøi gian trong caùc 
voøng treã hoaëc ñeå chieám choã cho caùc leänh caàn theâm vaøo chöông trình sau naøy maø 
khoâng laøm aûnh höôûng toái ñoä daøi cuûa chöông trình. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø 
Luaän vaên toát nghieäp trang105 
GVHD: NGUYEÃN ÑÌNH PHUÙ SVTH: NGOÂ VAÊN BÌNH 
v NOT – Invert Each Bit of an Operand (From its 1’s Complement) (Laáy buø 
cuûa moät toaùn haïng, ñaûo bit cuûa moät toaùn haïng) 
Cuù phaùp: NOT Ñích 
Trong ñoù toaùn haïng ñích coù theå tìm ñöôïc theo caùc cheá ñoä ñòa chæ khaùc nhau. 
Moâ taû: Ñích ¬ (Ñích) 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø. 
v OR – Logically Or Corresponding Bits of Two Operands (Hoaëc 2 toaùn 
haïng) 
Cuù phaùp: OR Ñích, Goác. 
Moâ taû: Ñích ß Ñích v Goác 
Trong ñoù toaùn haïng ñích vaø goác coù theå tìm ñöôïc theo caùc cheá ñoä ñòa chæ khaùc 
nhau, nhöng phaûi chöùa döõ lieäu cuøng ñoä daøi vaø khoâng ñöôïc pheùp ñoàng thôøi laø 2 oâ nhôù 
vaø cuõng khoâng ñöôïc laø thanh ghi ñoaïn. Pheùp OR thöôøng duøng ñeå laäp moät vaøi bit naøo 
ñoù cuûa toaùn haïng baèng caùch coäng logic toaùn haïng ñoù vôùi toaùn haïng töùc thôøi coù caùc 
bit 1 taïi caùc vò trí töông öùng caàn thieát laäp. 
Xoaù: CF, OF 
Caäp nhaät : PF, SF, ZP, PF chæ coù nghóa khi toaùn haïng laø 8 bit 
Khoâng xaùc ñònh : AF 
v OUT – Output a Byte or a Word to a Port (Ñöa döõ lieäu töø Acc ra coång) 
Cuù phaùp: OUT Port, Acc 
Moâ taû: Acc ® {Port} 
Trong ñoù {Port} laø döõ lieäu cuûa coång coù ñòa chæ laø Port. Port laø ñòa chæ 8 bit cuûa 
coång, noù coù theå coù caùc giaù trò trong khoaûng 00H…FFH. Nhö vaäy ta coù theå coù caùc 
khaû naêng sau: 
+ Neáu Acc laø AL thì döõ lieäu 8 bit ñöôïc ñöa ra coång Port 
 + Neáu Acc laø AX thì döõ lieäu 16 bit ñöôïc ñöa ra coång Port vaø coång Port + 1 
Coù moät caùch khaùc ñeå bieåu dieãn ñòa chæ coång laø thoâng qua thanh ghi DX. Khi 
duøng thanh ghi DX ñeå chöùa ñòa chæ coång ta seõ coù khaû naêng ñòa chæ hoùa coång meàm 
deûo hôn. Luùc naøy ñòa chæ coång naèm trong daûi 0000H…FFFFH vaø ta phaûi vieát leänh 
theo daïng: 
 OUT DX, Acc 
Trong ñoù DX phaûi ñöôïc gaùn töø tröôùc giaù trò öùng vôùi ñòa chæ coång. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø. 
v POP – Pop Word from Top of Stack (Laáy laïi 1 töø vaøo thanh ghi töø ñænh 
ngaên xeáp) 
Cuù phaùp: POP Ñích 
Moâ taû : Ñích ¬ {SP} 
 SP ¬ SP + 2 
Trong ñoù toaùn haïng ñích coù theå tìm ñöôïc theo caùc cheá ñoä ñòa chæ khaùc nhau: coù 
theå laø caùc thanh ghi ña naêng, thanh ghi ñoaïn (nhöng khoâng ñöôïc laø thanh ghi ñoaïn 
Luaän vaên toát nghieäp trang106 
GVHD: NGUYEÃN ÑÌNH PHUÙ SVTH: NGOÂ VAÊN BÌNH 
maõ CS) hoaëc oâ nhôù. Döõ lieäu ñeå taïi ngaên xeáp khoâng thay ñoåi. Giaù trò cuûa SS khoâng 
thay ñoåi. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø. 
v POPF – Pop Word from Top of Stack to Flag Register (Laáy 1 töø töø ñænh 
ngaên xeáp roài ñöa vaøo thanh côø) 
Cuù phaùp: POPF 
Moâ taû : RF ¬ {SP} 
 SP ¬ SP + 2 
Sau leänh naøy döõ lieäu ñeå taïi ngaên xeáp khoâng thay ñoåi, SS khoâng thay ñoåi. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø. 
v PUSH – Push Word on the Stack (Caát 1 töø vaøo ngaên xeáp) 
Cuù phaùp: Push Goác 
Moâ taû : SP ¬ SP – 2 
 Goác ® {SP} 
Trong ñoù toaùn haïng goác coù theå tìm ñöôïc theo caùc cheá ñoä ñòa chæ khaùc nhau: coù 
theå laø caùc thanh ghi ña naêng, thanh ghi ñoaïn hoaëc oâ nhôù. Leänh naøy thöôøng duøng vôùi 
leänh POP nhö laø moät caëp ñoái ngaãu ñeå xöû lyù caùc döõ lieäu vaø traïng thaùi cuûa chöông 
trình chính (CTC) khi vaøo/ra chöông trình con (ctc). 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø 
v PUSHF – Push Flag Register to the Stack (caát thanh côø vaøo ngaên xeáp) 
Cuù phaùp: PUSHF 
Moâ taû : SP ¬ SP – 2 
 RF ® {SP} 
Döõ lieäu ñeå taïi ngaên xeáp khoâng thay ñoåi. SS khoâng thay ñoåi. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø. 
v RCL – rotate though CF to the Left (Quay traùi thoâng qua côø nhôù) 
Cuù phaùp: RCL Ñích, CL 
Trong ñoù toaùn haïng ñích coù theå tìm ñöôïc theo caùc cheá ñoä ñòa chæ khaùc nhau. 
Leänh naøy duøng ñeå quay toaùn haïng sang traùi thoâng qua côø CF. CL phaûi ñöôïc 
chöùa saün soá laàn quay mong muoán. Trong tröôøng hôïp quay moät laàn coù theå vieát tröïc 
tieáp : 
 RCL Ñích, 1 
(Töø caùc boä vi xöû lyù theá heä sau nhö 80186, 80286 ... thì coù theå vieát tröïc tieáp kieåu 
naøy vôùi soá laàn quay lôùn nhaát laø 32). Ta nhaän thaáy neáu soá laàn quay laø 9 thì keát quaû 
khoâng thay ñoåi vì caëp CF vaø toaùn haïng quay troøn ñuùng moät voøng. 
Taùc ñoäng vaøo côø : Chæ coù CF vaø OF bò aûnh höôûng 
Sau leänh RCL côø CF mang giaù trò cuõ cuûa MSB bò thay ñoåi so vôùi tröôùc khi 
quay. Côø OF seõ khoâng ñöôïc xaùc ñònh nhieàu laàn quay. 
v RCR – Rotate though CF to the Right (Quay phaûi thoâng qua côø nhôù) 
Cuù phaùp: RCR Ñích, CL 
Trong ñoù toaùn haïng ñích coù theå tìm ñöôïc theo caùc cheá ñoä ñòa chæ khaùc nhau 
Luaän vaên toát nghieäp trang107 
GVHD: NGUYEÃN ÑÌNH PHUÙ SVTH: NGOÂ VAÊN BÌNH 
Leänh naøy duøng ñeå quay toaùn haïng sang phaûi thoâng qua côø CF, CL phaûi ñöôïc 
chöùa saün soá laàn quay mong muoán. Trong tröôøng hôïp quay moät laàn coù theå vieát tröïc 
tieáp : 
 RCR Ñích, 1 
(töø caùc boä vi xöû lyù theá heä sau nhö 80186, 80286 ... thì coù theå vieát tröïc tieáp kieåu 
naøy vôùi soá laàn quay lôùn nhaát laø 32). Ta nhaän thaáy neáu soá laàn quay laø 9 thì keát quaû 
khoâng thay ñoåi vì caëp CF vaø toaùn haïng thanh ghi quay troøn ñuùng moät voøng 
Taùc ñoäng vaøo côø : Chæ coù CF vaø OF bò aûnh höôûng 
Sau leänh RCR côø CF mang giaù trò cuõ cuûa LSB, coøn côø OF ¬ 1 neáu sau khi 
quay 1 laàn maø bit MSB bò thay ñoåi so vôùi tröôùc khi quay. Côø OF seõ khoâng ñöôïc xaùc 
ñònh sau nhieàu laàn quay 
v REP – Repeat String Instruction until CX = 0 (laëp laïi leänh vieát sau ñoù cho 
tôùi khi CX = 0) 
Ñaây laø tieáp ñaàu ngöõ duøng ñeå vieát tröôùc caùc leänh thao taùc vôùi chuoãi döõ lieäu maø 
ta muoán laëp laïi moät soá laàn. Soá laàn laëp phaûi ñeå tröôùc trong CX. Khi caùc leänh naøy 
ñöôïc laëp laïi thì CX töï ñoäng giaûm ñi 1 sau moãi laàn laëp. Quaù trình seõ keát thuùc khi 
CX = 0. 
v REPE/REPZ – Repeat String Instruction until CX = 0 or ZF = 0 (Laëp laïi 
leänh vieát sau ñoù cho tôùi CX=0 hoaëc ZF=0 
Ñaây laø caùc tieáp ñaàu ngöõ duøng ñeå vieát tröôùc caùc leänh thao taùc vôùi chuoãi döõ lieäu 
maø ta muoán laëp laïi moät soá laàn. Soá laàn laëp phaûi ñeå tröôùc trong CX. Khi caùc leänh naøy 
ñöôïc laëp laïi thì CX töï ñoäng giaûm ñi 1 sau moãi laàn laëp. Khi duøng REPE/REPZ vôùi 
leänh so saùnh chuoãi, quaù trình seõ keát thuùc khi ñeám heát (CX = 0) hoaëc sau khi 2 phaàn 
töû so saùnh khaùc nhau (ZF = 0). 
v REPNE/REPNZ – Repeat String Instruction until CX = 0 or ZF = 1 (laëp 
laïi leänh vieát sau ñoù cho tôùi khi CX = 0 hoaëc ZF = 1) 
Ñaây laø caùc tieáp ñaàu ngöõ duøng ñeå vieát tröôùc caùc leänh thao taùc vôùi chuoãi döõ lieäu 
maø ta muoán laëp laïi moät soá laàn. Soá laàn laëp phaûi ñeå tröôùc trong CX töï ñoäng giaûm ñi 
sau moãi laàn laëp. Khi duøng REPNE/REPNZ vôùi leänh queùt chuoãi, quaù trình seõ keát thuùc 
khi ñeám heát (CX=0) hoaëc khi Acc baèng phaàn töû cuûa chuoãi (ZF = 1). 
v RET – Return from Procedure to Calling Program (Trôû veà chöông trình 
chính töø chöông trình con) 
Cuù phaùp: RET hoaïc RET n, n laø soá nguyeân döông 
Moâ taû : 
RET ñöôïc ñaët taïi cuoái ctc ñeå boä vi xöû lyù laáy laïi ñòa chæ trôû veà (ñòa chæ cuûa leänh 
tieáp theo leänh goïi ôû chöông trìng chính), noù ñöôïc töï ñoäng caát ôû ngaên xeáp khi coù leänh 
goïi chöông trình con. Tuøy theo loaïi leänh goïi gaàn hay xa ta cuõng seõ coù caùc xöû lyù khaùc 
nhau ñoái vôùi ñòa chæ trôû veà (xem theâm phaàn moâ taû chung vôùi leänh CALL) 
Ñaëc bieät neáu ta duøng RET n thì sau khi ñaõ laáy laïi ñöôïc ñòa chæ trôû veà (chæ coù IP 
hoaëc coù caû CS vaø IP) thì SP ¬ SP + n (duøng ñeå nhaûy qua maø khoâng laáy laïi caùc 
thoâng soá khaùc cuûa chöông trình coøn laïi trong ngaên xeáp) 
Luaän vaên toát nghieäp trang108 
GVHD: NGUYEÃN ÑÌNH PHUÙ SVTH: NGOÂ VAÊN BÌNH 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø 
v ROL – Rotate All Bits to the Left (Quay voøng sang traùi) 
Cuù phaùp: ROL Ñích, CL 
Trong ñoù toaùn haïng ñich coù theå tìm ñöôïc theo caùc cheá ñoä ñòa chæ khaùc nhau. 
Leänh naøy duøng ñeå quay voøng toaùn haïng sang traùi, MSB seõ ñöôïc ñöa qua côø CF 
vaø LSB, CL phaûi ñöôïc chöùa saün soá laàn quay mong muoán. Trong tröôøng hôïp quay 
moät laàn coù theå vieát tröïc tieáp : 
 ROL Ñích, 1 
(töø caùc boä vi xöû lyù theá heä sau nhö 80186, 80286... thì coù theå vieát tröïc tieáp kieåu 
naøy vôùi soá laàn quay lôùn nhaát laø 32). Ta nhaän thaáy neáu CL = 8 vaø toaùn haïng ñeå quay 
laø 8 bit thì keát quaû khoâng bò thay ñoåi vì toaùn haïng quay troøn ñuùng moät voøng, coøn 
neáu: CL = 4 thì 2 nibble cuûa toaùn haïng bò ñoåi choã. 
Taùc ñoäng vaøo côø : Chæ coù CF vaø OF bò aûnh höôûng 
Sau leänh ROL côø CF mang giaù trò cuõ cuûa MSB, coøn côø OF ¬ 1 neáu sau khi 
quay 1 laàn maø bit MSB bò thay ñoåi so vôùi tröôùc khi quay. Côø OF seõ khoâng ñöôïc xaùc 
ñònh sau nhieàu laàn quay. Leänh naøy thöôøng duøng ñeå taïo côø CF töø giaù trò cuûa MSB 
laøm ñieàu kieän cho caùc leänh nhaûy coù ñieàu kieän. 
v ROR – Rotate All Bits to the Right (Quay voøng sang phaûi) 
Cuù phaùp: ROR Ñích, CL 
Trong ñoù toaùn haïng ñích coù theå tìm ñöôïc theo caùc cheá ñoä ñòa chæ khaùc nhau. 
Leänh naøy duøng ñeå quay voøng toaùn haïng sang phaûi, LSB seõ ñöôïc ñöa qua côø 
CF, MSB. CL phaûi ñöôïc chöùa saün soá laàn quay mong muoán. Trong tröôøng hôïp quay 
moät laàn coù theå vieát tröïc tieáp : 
 ROR Ñích, 1 
(töø caùc boä vi xöû lyù theá heä sau nhö 801286, 80286 ... thì coù theå vieát tröïc tieáp 
kieåu naøy vôùi soá laàn quay lôùn nhaát laø 32). Ta nhaän thaáy neáu CL = 8 thì keát quaû khoâng 
bò thay ñoåi vì toaùn haïng quay troøn ñuùng moät voøng, coøn neáu CL = 4 thì 2 nibble cuûa 
noù bò ñoåi choã. 
Taùc ñoäng vaøo côø : Chæ coù CF vaø OF bò aûnh höôûng 
Sau leänh ROR côø CF mang giaù trò cuõ LSB, coøn côø OF ¬ 1 neáu sau khi quay 1 
laàn maø bòt MSB bò thay ñoåi so vôùi tröôùc khi quay. Côø OF seõ khoâng ñöôïc xaùc ñònh 
nhieàu laàn quay. Leänh naøy thöôøng duøng ñeå taïo côø CF töø giaù trò cuûa LSB laøm ñieàu 
kieän cho caùc leänh nhaûy coù ñieàu kieän. 
v SAHF – Store AH Register into Low byte of Flag Register (caát thanh ghi 
AH vaøo byte thaáp cuûa thanh côø) 
Moâ taû : FRL ¬ AH 
Duøng leänh naøy phoái hôïp vôùi leänh POP AX thì coù theå moâ phoûng leänh POP PSW 
cuûa boä vi xöû lyù 8085 treân 8086 
Caäp nhaät : AF, CF, OF, PF, SF, ZP 
v SAL – Shift Arithmetically Left (Dòch traùi soá hoïc) / SHL – Shift 
(Logically) Left (Dòch traùi logic) 
Luaän vaên toát nghieäp trang109 
GVHD: NGUYEÃN ÑÌNH PHUÙ SVTH: NGOÂ VAÊN BÌNH 
Cuù phaùp: SAL Ñích, CL 
 SHL Ñích, CL 
Trong ñoù toaùn haïng ñích coù theå tìm ñöôïc theo caùc cheá ñoä ñòa chæ khaùc nhau 
Hai leänh naøy coù cuøng taùc duïng dòch traùi soá hoïc toaùn haïng (coøn goïi laø dòch traùi 
logic ñeå coù leänh ñoái nhau vôùi leänh dòch phaûi logic seõ noùi ôû phaàn sau). Moãi laàn dòch 
MSB seõ ñöôïc ñöa qua côø CF vaø 0 ñöa vaøo LSB. Thao taùc kieåu naøy ñöôïc goïi laø dòch 
logic. CL phaûi ñöôïc chöùa saün soá laàn dòch mong muoán. Trong tröôøng hôïp dòch moät 
laàn coù theå vieát tröïc tieáp : 
 SAL Ñích, 1 
(töø caùc boä vi xöû lyù theá heä sau nhö 80186, 80286 ... thì coù theå vieát tröïc tieáp kieåu 
naøy vôùi soá laàn dòch lôùn nhaát laø 32). Ta nhaän thaáy moät laàn dòch traùi kieåu naøy töông 
ñöông vôùi moät laàn laøm pheùp nhaân vôùi 2 cuûa soá khoâng daáu. Vì vaäy ta coù theå laøm 
pheùp nhaân moät soá vôùi soá nhaân khoâng daáu töông ñöông vôùi 2 baèng caùc dòch traùi soá 
hoïc soá bò nhaân i laàn. Chính vì vaäy thao taùc naøy coøn ñöôïc goïi laø dòch traùi soá hoïc. 
Trong chöøng möïc nhaát ñònh leänh naøy chaïy nhanh hôn MUL 
Taùc ñoäng vaøo côø : 
Sau leänh SAL hoaëc SHL côø CF mang giaù trò cuõ cuûa MSB (vì vaäy leänh naøy coøn 
duøng ñeå taïo côø CF töø giaù trò cuûa MSB laøm ñieàu kieän cho caùc leänh nhaûy coù ñieàu 
kieän), coøn côø OF ¬ 1 neáu sau khi dòch 1 laàn maø bit MSB bò thay ñoåi so vôùi tröôùc khi 
dòch. Côø OF seõ khoâng ñöôïc xaùc ñònh sau nhieàu laàn dòch. 
Caäp nhaät : SF, ZF, PF, PF chæ coù yù nghóa khi keát quaû laø 8 bit. 
Khoâng xaùc ñònh : AF 
v SAR – Shift Arithmetically Right (Dòch phaûi soá hoïc) 
Cuù phaùp: SAR Ñích, CL 
Trong ñoù toaùn haïng ñích coù theå tìm ñöôïc theo caùc cheá ñoä ñòa chæ khaùc nhau. 
Leänh naøy coù taùc duïng dòch phaûi soá hoïc toaùn haïng. Sau moãi laàn dòch MSB seõ 
ñöôïc giöõ laïi (neáu ta hieåu ñaây laø bit daáu cuûa moät soá coù daáu thì daáu luoân khoâng ñoåi 
sau pheùp dòch phaûi soá hoïc) coøn LSB ñöôïc ñöa vaøo côø CF. CL phaûi ñöôïc chöùa saün soá 
laàn dòch mong muoán. Trong tröôøng hôïp dòch moät laàn coù theå vieát tröïc tieáp: 
 SAR Ñích, 1 
(töø caùc boä vi xöû lyù theá heä sau nhö 80186, 80286 ... thì coù theå vieát tröïc tieáp kieåu 
naøy vôùi soá laàn dòch lôùn nhaát laø 32). Ta nhaän thaáy moät laàn dòch phaûi kieåu naøy töông 
ñöông vôùi moät laàn laøm pheùp chia cho 2 cuûa soá coù daáu. Vì vaäy coù theå laøm pheùp chia 
soá coù daáu cho moät soá khoâng daáu töông ñöông vôùi 2 baèng caùch dòch phaûi soá hoïc soá bò 
chia i laàn. Chính vì vaäy thao taùc naøy coøn ñöôïc goïi laø dòch phaûi soá hoïc. 
Taùc ñoäng vaøo côø: 
Sau leänh SAR côø CF mang giaù trò cuõ cuûa MSB (vì vaäy leänh naøy coøn duøng ñeå 
taïo côø CF töø giaù trò cuûa MSB laøm ñieàu kieän cho caùc leänh nhaûy coù ñieàu kieän), coøn côø 
OF ¬ 1 neáu sau khi dòch 1 laàn maø bit MSB bò thay ñoåi so vôùi tröôùc khi dòch. Côø OF 
seõ khoâng ñöôïc xaùc ñònh sau nhieàu laàn dòch. 
Caäp nhaät: SF, ZF, PF, PF chæ coù yù nghóa khi keát quaû laø 8 bit. 
Luaän vaên toát nghieäp trang110 
GVHD: NGUYEÃN ÑÌNH PHUÙ SVTH: NGOÂ VAÊN BÌNH 
Khoâng xaùc ñònh: AF. 
v SBB – Substract with Borrow (Tröø coù möôïn) 
Cuù phaùp: SBB Ñích, Goác 
Moâ taû : Ñích ¬ Ñích – Goác – CF 
Trong ñoù toaùn haïng ñích vaø goác coù theå tìm ñöôïc theo caùc cheá ñoä ñòa chæ khaùc 
nhau, nhöng phaûi chöùa cuøng moät loaïi döõ lieäu vaø khoâng ñöôïc pheùp ñoàng thôøi laø 2 oâ 
nhôù vaø cuõng khoâng ñöôïc laø thanh ghi ñoaïn. 
Caäp nhaät : AF, CF, OF, PF, SF, ZP (AP vaø PF chæ lieân quan ñeán 8 bit thaáp) 
v SCAS/SCASB/SCASW – Scan a String Byte or a String Word (Queùt 
chuoãi byte hay chuoãi töø) 
Cuù phaùp: SCAS chuoãi ñích 
 SCASB 
 SCASW 
Moâ taû: 
AL – Phaàn töû chuoãi ñích, DI ¬ DI + tuøy theo DF, neáu laø chuoãi 
byte 
AX – Phaàn töû chuoãi ñích, DI ¬ DI + 2 tuøy theo DF, neáu laø 
chuoãi töø 
(Phaàn töû chuoãi ñích laø do ES:DI hieän thôøi chæ ra) 
Leänh SCAS so saùnh AL hoaëc Ax vôùi töøng byte hay töøng töø cuûa xaâu ñích chæ ñeå 
taïo caùc côø, khoâng löu keát quaû so saùnh, caùc toaùn haïng khoâng bò thay ñoåi. Sau ñoù DI 
töï ñoäng taêng/giaûm ñeå chæ vaøo phaàn töû tieáp theo tuøy theo côø höôùng. Khi dòch leänh 
SCAS Chuoãiñích, chöông trình dòch duøng teân Chuoãiñích ñeå xaùc ñònh xem luùc khai 
baùo thì Chuoãiñích coù caùc phaàn töû laø byte hay töø. Muoán chæ roõ cho chöông trình dòch 
hôïp ngöõ raèng ta laøm vieäc vôùi chuoãi byte (chöùc caùc byte) hoaëc chuoãi töø (chöùa caùc töø), 
ta cuõng coù theå duøng leänh SCASB hoaëc SCASW. Caùc leänh naøy coøn thöôøng duøng keøm 
vôùi REPNE/REPNZ ñeå laëp laïi vieäc queùt moät soá laàn hoaëc queùt cho tôùi khi tìm ñöôïc 
maãu caàn tìm. 
Caäp nhaät : AF, CF, OF, PF, SF, ZP 
v SHL – Xem SAL 
v SHR – Shift (Logically) Right (Dòch phaûi logic) 
Cuù phaùp: SHR Ñích, CL 
Trong ñoù toaùn haïng ñích coù theå tìm ñöôïc theo caùc cheá ñoä ñòa chæ khaùc nhau. 
Leänh naøy duøng ñeå dòch phaûi logic toaùn haïng. Sau moãi laàn dòch LSB seõ ñöôïc 
ñöa qua côø CF vaø 0 ñöa vaøo MSB. Thao taùc kieåu naøy ñöôïc goïi laø dòch logic. CL phaûi 
ñöôïc chöùa saün soá laàn dòch mong muoán. Trong tröôøng hôïp dòch moät laàn coù theå vieát 
tröïc tieáp: 
 SHR Ñích, 1 
(töø caùc boä vi xöû lyù theá heä sau nhö 80186, 80286 ... thì coù theå vieát tröïc tieáp kieåu 
naøy vôùi soá laàn dòch lôùn nhaát laø 32). Ta nhaän thaáy moät laàn dòch traùi kieåu naøy töông 
ñöông vôùi moät laàn laøm pheùp chia cho 2 cuûa soá khoâng daáu. Vì vaäy coù theå laøm pheùp 
Luaän vaên toát nghieäp trang111 
GVHD: NGUYEÃN ÑÌNH PHUÙ SVTH: NGOÂ VAÊN BÌNH 
chia soá khoâng daáu cho moät soá khoâng daáu töông ñöông vôùi 2 baèng caùch dòch phaûi 
logic soá bò chia i laàn. 
Taùc ñoäng vaøo côø : 
Sau leänh SHR côø CF mang giaù trò cuõ cuûa LSB (vì vaäy leänh naøy coøn duøng ñeå 
taïo côø CF töø giaù trò cuûa LSB laøm ñieàu kieän cho caùc leänh nhaûy coù ñieàu kieän), coøn côø 
OF ¬ 1 neáu sau khi dòch 1 laàn maø bit MSB bò thay ñoåi so vôùi tröôùc khi dòch. Côø OF 
seõ khoâng ñöôïc xaùc ñònh sau nhieàu laàn dòch 
Caäp nhaät: SF, ZF, PF, PF chæ coù yù nghóa khi keát quaû laø 8 bit. 
Khoâng xaùc ñònh: AF. 
v STC – Set the Carry Flag (Laäp côø nhôù) 
Moâ taû: CF ¬ 1 
Khoâng taùc ñoäng ñeán caùc côø khaùc 
v STD – Set the Direction Flag (Laäp côø höôùng) 
Moâ taû: DF ¬ 1 
Leänh naøy ñònh höôùng thao taùc cho caùc leänh laømvieäc vôùi chuoãi theo chieàu luøi 
(¬). Caùc thanh ghi SI vaø DI lieân quan seõ ñöôïc töï ñoäng giaûm khi laøm vieäc xong vôùi 
moät phaàn töû cuûa chuoãi. 
Khoâng taùc ñoäng ñeán caùc côø khaùc 
v STI – Set the Interrupt Flag (Laäp côø cho pheùp ngaét) 
Moâ taû: IF ¬ 1 
Leänh naøy laäp côø cho pheùp ngaét ñeå cho pheùp caùc yeâu caàu ngaét taùc ñoäng vaøo 
chaân INTR ñöôïc CPU nhaän bieát. Khi IF = 1 neáu coù tín hieäu INTR = 1 thì 8086 seõ bò 
ngaét, noù seõ töï ñoäng caát thanh ghi côø vaø ñòa chæ trôû veà vaøo ngaên xeáp roài chuyeån sang 
chaïy chöông trình (con) phuïc vuï ngaét CTPVN. Taïi cuoái CTPVN seõ coù leänh trôû veà 
CTC töø CTPVN (IRET) ñeå 8086 laáy laïi töø ngaên xeáp giaù trò cuûa thanh ghi côø vaø ñòa 
chæ trôû veà. 
Khoâng taùc ñoäng ñeán caùc côø khaùc. 
v STOS/STOSB/STOSW – Store AL/AX in String Byte/Word (caát AL/AX 
vaøo 1 phaàn töû cuûa chuoãi byte/töø) 
Cuù phaùp: STOS Chuoãiñích 
 STOSB 
 STOSW 
Moâ taû : AL ® Phaàn töû hieän thôøi, DI ¬ DI + tuøy theo DF, neáu laø chuoãi 
byte 
AX ® Phaàn töû hieän thôøi, DI ¬ DI + 2 tuøy theo DF, neáu laø chuoãi 
töø 
(Phaàn töû chuoãi ñích laø do ES:DI hieän thôøi chæ ra) 
Leänh STOS caát AL/AX vaøo 1 byte/töø (1 phaàn töû cuûa chuoãi ñaõ ñöôïc ñònh nghóa 
tröôùc laø chuoãi goàm caùc byte hoaëc töø) do DI chæ ra trong ñoaïn ES, sau ñoù DI töï ñoäng 
taêng/giaûm ñeå chæ vaøo phaàn töû tieáp theo tuøy theo côø höôùng. Khi dòch leänh STOS 
Chuoãiñính, chöông trình dòch duøng teân Chuoãiñích ñeå xaùc ñònh xem luùc khai baùo thì 
Luaän vaên toát nghieäp trang112 
GVHD: NGUYEÃN ÑÌNH PHUÙ SVTH: NGOÂ VAÊN BÌNH 
Chuoãiñích coù caùc phaàn töû laø byte hay töø. Muoán chæ roõ cho chöông trình dòch hôïp ngöõ 
raèng ta laøm vieäc vôùi chuoãi caùc byte hoaëc caùc töø, ta cuõng coù theå duøng leänh STOSB 
hoaëc STOSW. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø 
Trong thí duï treân chöông trình dòch hôïp ngöõ seõ duøng teân STR1 ñeå xaùc ñònh 
kieåu STR1 laø byte hay laø töø roài töï ñoäng caát AL hay AX vaøo chuoãi. 
v SUB – Substract (Tröø 2 toaùn haïng) 
Cuù phaùp: SUB Ñích, Goác 
Moâ taû : Ñích ¬ Ñích – Goác. 
Trong ñoù toaùn haïng ñích vaø goác coù theå tìm ñöôïc theo caùc cheá ñoä ñòa chæ khaùc 
nhau, nhöng phaûi chöùa döõ lieäu coù cuøng ñoä daøi vaø khoâng ñöôïc pheùp ñoàng thôøi laø 2 oâ 
nhôù vaø cuõng khoâng ñöôïc thanh ghi ñoaïn. 
Caäp nhaät : AF, CFm OFm PFm SF, ZP (AP vaø PF chæ lieân quan ñeá 8 bit thaáp) 
v TEST – And Operands to Update Flag (Vaø 2 toaùn haïng ñeå taïo côø) 
Cuù phaùp: TEST Ñích, Goác. 
Moâ taû : Ñích ^ Goác 
Trong ñoù toaùn haïng ñích vaø goác coù theå tìm ñöôïc theo caùc cheá ñoä ñòa chæ khaùc 
nhau, nhöng phaûi chöùa döõ lieäu coù cuøng ñoä daøi vaø khoâng ñöôïc pheùp ñoàng thôøi laø 2 oâ 
nhôù vaø cuõng khoâng ñöôïc laø thanh ghi ñoaïn. Sau leänh naøy caùc toaùn haïng khoâng bò 
thay ñoåi vaø keát quaû khoâng ñöôïc löu giöõ. Caùc côø ñöôïc taïo ra seõ ñöôïc duøng laøm ñieàu 
kieän cho caùch leänh nhaûy coù ñieàu kieän. Leänh nhaø cuõng coù taùc duïng che nhö moät maët 
naï. 
Xoùa: CF, OF 
Caäp nhaät: PF, SF, ZP, ZP (PF chæ lieân quan ñeán 8 bit thaáp) 
Khoâng xaùc ñònh: AF 
v WAIT – Wait for TEST or INTR Signal (Chôø tín hieäu töø chaân TEST hoaëc 
INTR) 
Moâ taû: 
Leänh naøy ñöa vi xöû lyù vaøo traïng thaùi nghæ noù seõ ôû traïng thaùi naøy cho tôùi khi coù 
tín hieäu ôû möùc thaáp taùc ñoäng vaøo chaân TEST hoaëc khi coù tín hieäu ôû möùc cao taùc 
ñoäng vaøo chaân INTR. Neáu coù yeâu caàu ngaét vaø yeâu caàu naøy ñöôïc pheùp taùc ñoäng 
trong khi 8086 ñang ôû traïng thaùi nghæ thì sau khi thöïc hieän chöông trình phuïc vuï ngaét 
noù laïi quay veà traïng thaùi nghæ. Leänh naøy duøng ñeå ñoàng boä hoaït ñoäng cuûa 8086 vaø 
caùc boä phaän beân ngoaøi nhö boä ñoàng xöû lyù toaùn hoïc 8087. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø. 
v XCHG – Exchange 2 Operands (Traùo noäi dung 2 toaùn haïng) 
Cuù phaùp: XCHG Ñích, Goác. 
Moâ taû: Ñích « Goác 
Trong ñoù toaùn haïng ñích vaø goác coù theå tìm ñöôïc theo caùc cheá ñoä ñònh ñòa chæ 
nhau, nhöng phaûi chöùa döõ lieäu vaø cuøng ñoä daøi vaø khoâng ñöôïc pheùp ñoàng thôøi laø 2 oâ 
Luaän vaên toát nghieäp trang113 
GVHD: NGUYEÃN ÑÌNH PHUÙ SVTH: NGOÂ VAÊN BÌNH 
nhôù vaø cuõng khoâng ñöôïc laø thanh ghi ñoaïn. Sau leänh XCHG toaùn haïng naøy chöùa noäi 
dung cuõ cuûa toaùn haïng kia vaø ngöôïc laïi. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø. 
v XLAT – Translate a Byte in AL (Noäi dung cuûa AL theo baûng cho tröôùc) 
Cuù phaùp: XLAT 
Moâ taû: AL ¬ {AL + BX} 
Leänh naøy duøng ñeå ñoåi 8 bit hoaëc ít hôïn töø maõ naøy (goác) sang maõ khaùc (ñích) 
theo 1 baûng tra cho saün. Tröôùc khi thöïc hieän leänh ñoåi, baûng tra phaûi chöùa caùc maõ 
ñích vaø BX phaûi chöùa ñòa chæ leäch cuûa baûng naøy trong ñoaïn döõ lieäu, coøn maõ goác 
(caàn ñoåi) phaûi ñöôïc chöùa trong AL. Khi chaïy leänh XLAT thì pheùp coäng AL + BX 
ñöôïc thöïc hieän ñeå taïo ra ñòa chæ oâ nhôù trong baûng soá maø noäi dung cuûa noù seõ ñöôïc caát 
trôû laïi vaøo thanh ghi AL. 
Leänh naøy khoâng taùc ñoäng ñeán caùc côø 
v XOR – Exclusive Or Corresponding Bits of Two Operands (Hoaëc loaïi tröø 
2 toaùn haïng) 
Cuù phaùp: XOR Ñích, Goác. 
Moâ taû : Ñích ¬ Ñích Å Goác 
Trong ñoù toaùn haïng ñích vaø goác coù theå tìm ñöôïc theo caùc cheá ñoä ñòa chæ khaùc 
nhau, nhöng phaûi chöùa döõ lieäu cuøng ñoä daøi vaø khoâng ñöôïc pheùp ñoàng thôøi laø 2 oâ nhôù 
vaø cuõng khoâng ñöôïc laø thanh ghi ñoaïn. Töø tính chaát cuûa pheùp hoaëc loaïi tröø, ta thaáy 
neáu toaùn haïng ñích truøng vôùi toaùn haïng goác thì keát quaû baèng 0, do ñoù leänh naøy coøn 
ñöôïc duøng ñeå xoùa veà 0 moät thanh ghi naøo ñoù vaø keøm theo caùc côø CF vaø OF cuõng bò 
xoùa. 
Caäp nhaät: PF, SF, ZP. PF chæ coù nghóa khi toaùn haïng laø 8 bit. 
Khoâng xaùc ñònh: AF 
Treân ñaây nhoùm thöïc hieän ñaõ giôùi thieäu qua taát caû caùc leänh coù trong taäp leänh 
cuûa boä vi xöû lyù 8086, maëc duø trong thöïc teá laäp trình nhieàu khi ta khoâng söû duïng heát 
ñöôïc taát caû caùc leänh coù trong taäp leänh naøy. Taäp leänh cuûa caùc boä vi xöû lyù cao caáp hôn 
trong hoï 80x86 ngoaøi nhöõng leänh naøy coøn bao goàm nhieàu leänh khaùc nöõa. 
Ta coù theå coi ñaây laø moät ví duï veà taäp leänh cuûa moät boä vi xöû lyù duøng ñeå cheá taïo 
ra maùy tính vôùi taäp leänh ñaày ñuû (Complete Instruction Set Computer, CISC) vôùi ñaëc 
tröng laø coù raát nhieàu leänh vôùi caùc cheá ñoä ñòa chæ raát ña daïng, caùc leänh coù ñoä daøi 
khaùc nhau vaø thôøi gian ñeå thöïc hieän cuõng khaùc nhau. Boä vi xöû lyù vì theá thöôøng coù 
caáu truùc raát phöùc taïp. Theá maø treân thöïc teá, trong caùc chöông trình hôïp ngöõ ñeå giaûi 
quyeát caùc coâng vieäc cuï theå, thöôøng coù nhieàu leänh ñöôïc duøng vôùi taàn suaát lôùn nhöng 
cuõng coù nhöõng leänh raát ít khi hoaëc thaäm chí khoâng heà söû duïng. Ñaây cuõng chính laø lyù 
do ñeå caùc nhaø saûn xuaát cho ra ñôøi caùc boä vi xöû lyù coù caáu truùc caûi tieán theo höôùng 
ñôn giaûn hoùa vôùi taäp leänh raát hieäu duïng (coù soá leänh ít hôn vôùi cheá ñoä ñòa chæ ñôn 
giaûn, caùc leänh coù ñoä daøi thoáng nhaát vaø coù thôøi gian thöïc hieän nhö nhau) nhöng laïi coù 
khaû naêng thöïc hieän leänh nhanh hôn gaáp boäi so vôùi loaïi CISC. Ñoù laø caùc boä vi xöû lyù 
Luaän vaên toát nghieäp trang114 
GVHD: NGUYEÃN ÑÌNH PHUÙ SVTH: NGOÂ VAÊN BÌNH 
duøng laøm CPU cho caùc maùy tính vôùi taäp leänh ruùt goïn (Reduced Instruction Set 
Computer, RISC). 
            Các file đính kèm theo tài liệu này:
 Luận văn tốt nghiệp-VXL Intel 8086.pdf Luận văn tốt nghiệp-VXL Intel 8086.pdf