1、8086指令系統(tǒng)可以處理哪幾類數(shù)據(jù)類型?
2、8086系統(tǒng)中,采用什么途徑來(lái)改變CS和IP的值?有哪些指令可用于這個(gè)目的?
3、數(shù)據(jù)傳送指令可以把寄存器作為目的操作數(shù),但同時(shí)又規(guī)定代碼段CS不能作為目的操作數(shù),為什么?
4、試述指令MOV AX,2000H和MOV AX,DS:[2000H]的區(qū)別。
5、INC和DEC指令實(shí)質(zhì)是加減法指令,為什么設(shè)計(jì)成不影響進(jìn)位標(biāo)志?
6、已知SS內(nèi)容為2000H,SP內(nèi)容為1000H,AX內(nèi)容為123H,BX內(nèi)容為8BCDH。先執(zhí)行兩條PUSH AX和PUSH BX,然后再執(zhí)行兩條POP AX和POP BX。要求:
(1) 畫(huà)出執(zhí)行兩條PUSH指令和POP指令過(guò)程的示意圖。
(2) 說(shuō)明堆和SP的變化過(guò)程。
(3) AX和BX最終內(nèi)容是什么?
7、編寫(xiě)程序段:
(1) 將06A6H單元的內(nèi)容送AX。
(2) 將06A8H單元的內(nèi)容送BX。
(3) 將立即數(shù)32H送CL,立即數(shù)38H送DL。
(4) 將立即數(shù)0400H送SI,立即數(shù)08FFH送DI。
(5) 將立即數(shù)1234H送存儲(chǔ)單元0940H。
8、在8086指令系統(tǒng)中,設(shè)置LAHF和SAHF指令的目的是什么?
9、XLAT是一條什么指令?AL和BX在指令中起什么作用?
10、以知一個(gè)關(guān)于0~9數(shù)字的ASCII碼表首址是當(dāng)前數(shù)據(jù)段的1A80H,現(xiàn)要找出數(shù)字5的ASCII碼,試用XLAT指令編程。
11、編程序段將補(bǔ)碼9035H和7304H相加,結(jié)果送地址0621H單元。
12、編程序段將CX中的數(shù)(補(bǔ)碼)與補(bǔ)碼86H相加,結(jié)果送AX。
13、編程序段將十進(jìn)制數(shù)37和48相加。
14、寫(xiě)出10H、19H、62H、57H的壓縮BCD數(shù)的表示形式。
15、將十進(jìn)制數(shù)9和6相乘,結(jié)果送地址為0320H單元。
16、8086的除法指令對(duì)余數(shù)是怎樣規(guī)定的?寫(xiě)出+47除以-9,-47除以+9的商和余數(shù)。
17、為什么非壓縮BCD數(shù)的被除數(shù)、除數(shù)、被乘數(shù)、乘數(shù)的高四位必須是零?而對(duì)參加加法和減法運(yùn)算的BCDE數(shù),則不作此要求?
18、將存放在0A00H單元和0A02H單元中的兩個(gè)16位無(wú)符號(hào)數(shù)相乘,結(jié)果存地址為0A04H開(kāi)始的單元中。
19、將DX中的16位無(wú)符號(hào)數(shù)除以61H,將商存0930H單元,余數(shù)送0931H單元。
20、用移位法,將SI內(nèi)容乘以10(其積小于65535),結(jié)果存入1000H單元。
21、編程序?qū)X中數(shù),最高位保持不變,其余全部右移四位。
22、將0400H單位中數(shù),前四位置零,后四位保持不變。
23、將BX中數(shù),對(duì)高位字節(jié)求反,低位字節(jié)保持不變。
24、檢查BX中第13位,為0時(shí),把AL置0;為1時(shí),把AL置1。
25、什么是段內(nèi)轉(zhuǎn)移?什么是段間轉(zhuǎn)移?什么是間接轉(zhuǎn)移?
26、為什么不能用JMP指令調(diào)用子程序?
27、分析下列程序段:
MOV AL,50H
G:DEC AL
JNZ G
HLT
問(wèn):DEC AL指令,共執(zhí)行多少次?
28、利用字符串操作指令,將1000H~10FFH單元的內(nèi)容全部清零。
29、從1000H單元開(kāi)始,存放200個(gè)字符串,要查出字符#,把存放第一個(gè)#的單元地址送BX中。
30、100個(gè)數(shù)據(jù)的字符串,從地址為adr1單元傳送到地址為adr2單元(設(shè)地址adre1和adr2間距小于100,即兩數(shù)據(jù)區(qū)有重迭),試用字符串操作指令編程序。
