




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一章.辨析三個(gè)概念:微處理器、微型計(jì)算機(jī)、微型計(jì)算機(jī)系統(tǒng)微處理器:簡(jiǎn)稱DP或MP(Microprocessor)是指由一片或幾片大規(guī)模集成電路組成的具有運(yùn)算器和控制器功能的中央處理器部件,又稱為微處理機(jī)。微型計(jì)算機(jī):簡(jiǎn)稱DC或MC,是指以微處理器為核心,配上存儲(chǔ)器、輸入/輸出接口電路及系統(tǒng)總線所組成的計(jì)算機(jī)(又稱主機(jī)或微電腦)。微型計(jì)算機(jī)系統(tǒng)(主機(jī)+外設(shè)+軟件配置)(Microcomputersystem)簡(jiǎn)稱DCS或MCS,是指以微型計(jì)算機(jī)為中心,以相應(yīng)的外圍設(shè)備、電源和輔助電路(統(tǒng)稱硬件)以及指揮微型計(jì)算機(jī)工作的系統(tǒng)軟件所構(gòu)成的系統(tǒng)。.微機(jī)系統(tǒng)結(jié)構(gòu)(三種總線結(jié)構(gòu)):數(shù)據(jù)總線,地址總線,控
2、制總線第三章內(nèi)部結(jié)構(gòu)由兩部分組成:總線接口單元BIU(BusInterfaceUnit);執(zhí)行單元EU(ExecutionUnit).總線接口單元BIU組成:4個(gè)16位的段寄存器(CS、DS、ES、SS);1個(gè)16位的指令指針寄存器IP;1個(gè)20位的地址加法器;1個(gè)指令隊(duì)列(長(zhǎng)度為6個(gè)字節(jié));I/O控制電路(總線控制邏輯);內(nèi)部暫存器。BIU的功能:根據(jù)EU的請(qǐng)求負(fù)責(zé)CPU與內(nèi)存或I/O端口傳送指令或數(shù)據(jù)。BIU從內(nèi)存取指令送到指令隊(duì)列當(dāng)EU執(zhí)行指令時(shí),BIU要配合EU從指定的內(nèi)存單元或I/O端口中讀取數(shù)據(jù),或者把EU的操作結(jié)果送到指定的內(nèi)存單元或I/O端口去。(2)執(zhí)行單元EU(Execut
3、ionUnit)組成:ALU(算術(shù)邏輯單元);通用寄存器組AX,BX,CX,DX(4個(gè)數(shù)據(jù)寄存器)BP(基址指針寄存器)SP(堆棧指針寄存器)SI(源變址寄存器)口1(目的變址寄存器)數(shù)據(jù)暫存寄存器標(biāo)志寄存器FREU控制電路作用:負(fù)責(zé)執(zhí)行指令,執(zhí)行的指令從BIU的指令隊(duì)列中取得;運(yùn)算結(jié)果和所需數(shù)據(jù),則由EU向BIU發(fā)出請(qǐng)求,經(jīng)總線訪問(wèn)內(nèi)存或I/O端口進(jìn)行存取。4物理地址與邏輯地址有什么區(qū)別答:邏輯地址是指未定位之前在程序中存在的地址,由段地址和偏移地址組成。物理地址是實(shí)際訪問(wèn)存儲(chǔ)器時(shí)的地址(通過(guò)20位地址總線傳遞)。5.在什么情況下8086的執(zhí)行單元(EU)才需要等待總線接口單元(BIU)提取
4、指令答:EU在執(zhí)行完轉(zhuǎn)移、調(diào)用(包括子程序調(diào)用和中斷調(diào)用)和返回指令時(shí),因指令的執(zhí)行順序發(fā)生跳轉(zhuǎn),原來(lái)預(yù)取到指令隊(duì)列中的指令將不再執(zhí)行,需清空指令隊(duì)列緩沖器。在此情況下,EU才需要等待BIU從新的地址重新開(kāi)始提取指令。6存儲(chǔ)器為什么要分段(段加偏移)答:有1M的存儲(chǔ)空間,有20根地址線,而CPU的指令指針和堆棧指針都是16位的,只能直接尋址64KB的地址空間,為了能尋址1MB的空間,需要把存儲(chǔ)器分為若干段。2存儲(chǔ)器的分段的機(jī)制允許重定位,由于段寄存器里的段地址可以由程序來(lái)重新設(shè)定,因而使得程序和數(shù)據(jù)不需要進(jìn)行任何修改,就能使他們重定位。7段地址和段基址概念辨析1)段地址:段寄存器的內(nèi)容,出現(xiàn)在
5、匯編后的機(jī)器指令中。2)段基址:段地址左移4位后形成的20位段起始地址。8.8086CPU系統(tǒng)中為什么要用地址鎖存器8086CPU由于引腳數(shù)量少,其地址總線采用了分時(shí)復(fù)用的雙重總線,僅在總線周期的Tl時(shí)鐘周期輸出地址信號(hào),而在整個(gè)總線周期中地址信號(hào)需保持不變,這就需用地址鎖存器將T1周期發(fā)出的地址信號(hào)鎖存起來(lái)以在整個(gè)總線周期中都能使用,為此8086CPU在T1周期提供地址鎖存允許信號(hào)ALE(正脈沖),用ALE的下降沿將地址信息鎖存在地址鎖存器中(3分)共需3片73LS373芯片用作地址鎖存器,鎖存信息A19A0和BHE的最大工作模式和最小工作模式的區(qū)別答:最小工作方式即單處理器系統(tǒng)方式;在此方
6、式下,全部控制信號(hào)由CPU本身提供,它適合于較小規(guī)模的應(yīng)用。CPU工作于最大工作方式時(shí),系統(tǒng)的控制信號(hào)由8288總線控制其提供,通常,在最大方式系統(tǒng)中一般包含兩個(gè)或多個(gè)處理器。10.什么叫重定位答:重定位是指一個(gè)完整的程序塊或數(shù)據(jù)塊可以在存儲(chǔ)器所允許的空間內(nèi)任意浮動(dòng)并定位到一個(gè)新的可尋址的區(qū)域。11.8086指令系統(tǒng)的特點(diǎn)答:8086與8088的指令系統(tǒng)由8位的80808085指令系統(tǒng)擴(kuò)展而來(lái)的,同時(shí)又能在其后續(xù)的80 x86系列的CPU上正確運(yùn)行。其主要特點(diǎn)是:采用可變長(zhǎng)指令,指令格式比較復(fù)雜。尋址方式靈活多樣,處理數(shù)據(jù)的能力比較強(qiáng)。有重復(fù)指令和乘、除運(yùn)算指令。擴(kuò)充了條件轉(zhuǎn)移、移位/循環(huán)指令
7、。為加強(qiáng)軟件中斷功能和支持多處理器系統(tǒng)的工作,增設(shè)了有關(guān)的指令??偩€周期概念:總線周期通常是指微處理器完成一次訪存或I/O端口操作所需的時(shí)間。(類似于機(jī)器周期)在8086/8088中,一個(gè)最基本的總線周期由4個(gè)時(shí)鐘周期組成,分別稱為4個(gè)狀態(tài),即T1、T2、T3與T4這4個(gè)狀態(tài)。由T1狀態(tài):CPU往多路復(fù)用總線上發(fā)送地址信息,以選中所要尋址的存儲(chǔ)單元或外設(shè)端口的地址。由T2狀態(tài):CPU從總線上撤消地址,并使總線的低16位浮置成高阻狀態(tài),為傳送數(shù)據(jù)做準(zhǔn)備。由T3狀態(tài),多路總線的高4位繼續(xù)提供狀態(tài)信息,而其低16位(對(duì)8088CPU則為低8位)上將出現(xiàn)由CPU寫(xiě)出的數(shù)據(jù)或者CPU從存儲(chǔ)器或端口讀入的
8、數(shù)據(jù)。由說(shuō)明:若訪問(wèn)設(shè)備未準(zhǔn)備好,則CPU會(huì)在T3之后自動(dòng)插入1個(gè)或多個(gè)附加的時(shí)鐘周期Tw,這個(gè)Tw就叫等待狀態(tài)(CPU在每個(gè)總線周期的T3狀態(tài)開(kāi)始對(duì)READY信號(hào)采樣。)由T4狀態(tài):CPU采樣數(shù)據(jù)總線,完成本次讀/寫(xiě)操作,總線周期結(jié)束。(要對(duì)INTR信號(hào)進(jìn)行采樣)由說(shuō)明:只有BIU與內(nèi)存或I/O端口交換數(shù)據(jù),以及填充指令隊(duì)列時(shí),BIU才執(zhí)行總線周期。除此之外,既不需要填充指令隊(duì)列,EU也沒(méi)有向BIU發(fā)出總線周期請(qǐng)求時(shí),系統(tǒng)總線就處于空閑狀態(tài),進(jìn)入空閑周期,空閑周期由一個(gè)或幾個(gè)Ti狀態(tài)組成。RESET復(fù)位后,標(biāo)志寄存器與指令隊(duì)列緩沖器的原有信息被清除,IP與DS、SS和ES也被清零,而CS被置
9、為FFFFH。當(dāng)RESET信號(hào)變?yōu)榈碗娖綍r(shí),CPU就從FFFF0H開(kāi)始執(zhí)行程序。在程序執(zhí)行時(shí),RESET線保持低電平。.指令數(shù)據(jù)在存儲(chǔ)器中的存放若存放的信息為1個(gè)字時(shí),則將字的低位字節(jié)放在低地址中,高位字節(jié)放在高地址中。(注:對(duì)存放的字,若低位字節(jié)從奇數(shù)地址開(kāi)始存放,為非規(guī)則字;反之,為規(guī)則字。讀一個(gè)規(guī)則字需要訪問(wèn)一次存儲(chǔ)器,讀一個(gè)非規(guī)則字需要訪問(wèn)兩次存儲(chǔ)器)當(dāng)存放的是雙字形式(這種數(shù)一般作為指針),其低位字是被尋址地址的偏移量;高位字則是被尋址地址所在的段地址。8086的存儲(chǔ)器為什么要分段答案見(jiàn)6808昭088指令的分類8086咫088的指令按功能可分為大類:數(shù)據(jù)傳送、算術(shù)運(yùn)算、邏輯運(yùn)算、串
10、操作、程序控制和CPU控制數(shù)據(jù)傳送指令(細(xì)分成4類)通用數(shù)據(jù)傳送指令MOV、PUSH、POP、XCHG、XLAT目標(biāo)地址傳送指令LEA、LDS、LES標(biāo)志位傳送指令LAHF、SAHF、PUSHF、POPFI/O數(shù)據(jù)傳送指令I(lǐng)N、OUT傳送指令:MOVDST,SRC執(zhí)行操作:(DST)(SRC)說(shuō)明:可實(shí)現(xiàn)一個(gè)字節(jié)或字的傳送(例子見(jiàn)教材P66)。注意:DST、SRC不能同時(shí)為段寄存器MOVDS,ES立即數(shù)不能直接送段寄存器MOVDS,2000HDST不能是立即數(shù)和CSDST、SRC不能同時(shí)為存儲(chǔ)器尋址*不影響標(biāo)志位進(jìn)棧指令:PUSHSRC汪思:堆棧操作必須以字為單位。不影響標(biāo)志位不能用立即尋址方
11、式PUSH1234HDST不能是CSPOPCS并非局限在棧頂操作MOVAX,BPSI交換指令:XCHGOPRI,OPR2執(zhí)行操作:(OPRI)(OPR2)汪思:不影響標(biāo)志位不允許使用段寄存器不能在存儲(chǔ)器單元之間交換換碼指令:XLAT或XLATOPR(通過(guò)查表實(shí)現(xiàn))執(zhí)行操作:(AL)(BX)+(AL)例:MOVBX,OFFSETTABLE;(BX)=0040H(表預(yù)先建立在內(nèi)存)MOVAL,3;索引值XLATTABLE指令執(zhí)行后(AL)=3OH汪思:不影響標(biāo)志位字節(jié)表格(長(zhǎng)度不超過(guò)256字節(jié))首地址(BX)需轉(zhuǎn)換的代碼位移量(AL)目標(biāo)地址傳送指令有效地址送寄存器指令:LEAREG,SRC執(zhí)行操
12、作:(REG)SRC(存儲(chǔ)器)指針?biāo)图拇嫫骱虳S指令:LDSREG,SRC執(zhí)行操作:(REG)(SRC)(DS)(SRC+2)相繼二字寄存器、DS指針?biāo)图拇嫫骱虴S指令:LESREG,SRC執(zhí)行操作:(REG)(SRC)(ES)(SRC+2)相繼二字寄存器、ES汪思:不影響標(biāo)志位REG不能是段寄存器SRC必須為存儲(chǔ)器尋址方式標(biāo)志位傳送指令標(biāo)志送AH指令:LAHF執(zhí)行操作:(AH)(FLAGS的低字節(jié))AH送標(biāo)志寄存器指令:SAHF*(置位/復(fù)位)執(zhí)行操作:(FLAGS的低字節(jié))(AH)標(biāo)志進(jìn)棧指令:PUSHF(轉(zhuǎn)子/中斷調(diào)用)執(zhí)行操作:(SP)(SP)-2(SP)+1,(SP)(FLAGS)標(biāo)
13、志出棧指令:POPF*(轉(zhuǎn)子/中斷調(diào)用)執(zhí)行操作:(FLAGS)(SP)+1,(SP)(SP)(SP)+2*影響標(biāo)志位二、算術(shù)運(yùn)算類指令(共20條指令)加法指令A(yù)DD、ADC、INC減法指令SUB、SBB、DEC、NEG、CMP乘法指令MUL、IMUL除法指令DIV、IDIV、CBW、CWD執(zhí)行REPMOVS之前,應(yīng)先做好(初始化工作):源串首地址(末地址)fSI目的串首地址(末地址)fDI串長(zhǎng)度f(wàn)CX(最大64KB)建立方向標(biāo)志(CLD使DF=0,STD使DF=1)一個(gè)串傳送的例子:datasegmentmessldbpersonal_computer;字符數(shù)組dataendsextrase
14、gmentmess2db17dup()extraendscodesegmentmovax,data;不能:movds,data(X)movds,ax;立即數(shù)不能直接送段寄存器movax,extra;不能:leads,data(X)moves,ax;用于取變量的有效地址leasi,mess1;源串首地址leadi,mess2;目標(biāo)串首地址movcx,17;串長(zhǎng)度cld;建立方向標(biāo)志(CLD使DF=0,STD使DF=1)repmovsb;串傳送codeends例(續(xù)):把附加段中的10個(gè)字節(jié)緩沖區(qū)置為20Hleadi,mess2moval,20Hmovcx,10cldrepstosb比較例中兩串是
15、否完全相同,若兩串相同,則BX寄存器內(nèi)容為0;若兩串不同,則BX指向源串中第1個(gè)不相同字節(jié)的地址,且該字節(jié)的內(nèi)容保留在AL寄存器中。CLDMOVCX,100MOVSI,2500HMOVDI,1400HREPECPMSB;串比較,直到ZF=0或CX=0JZEQQ;兩串相同,置BX為0DECSI;將指針修改回第1個(gè)不相同字節(jié)處MOVBX,SIMOVAL,SIJMPSTOP;必須跳轉(zhuǎn),否則仍繼續(xù)執(zhí)行EQQEQQ:MOVBX,0STOP:HLT例:試比較兩個(gè)無(wú)符號(hào)數(shù)80H和79H,則用下面的指令,即MOVAL,80HCMPAL,79HJAABOVE例:試比較兩個(gè)有符號(hào)數(shù)80H和79H,則用下面的指令,
16、即MOVAL,80HCMPAL,79HJGGREATER第三章習(xí)題答案整理答:由兩部分組成:總線接口單元BIU(BusInterfaceUnit),執(zhí)行單元EU(ExecutionUnit).BIU的功能是根據(jù)執(zhí)行單元的請(qǐng)求負(fù)責(zé)CPU與I/O端口或則存儲(chǔ)器之間的數(shù)據(jù)傳輸。EU單元的作用是:負(fù)責(zé)執(zhí)行指令,執(zhí)行的指令從BIU的指令隊(duì)列中取得;運(yùn)算結(jié)果和所需數(shù)據(jù),則由EU向BIU發(fā)出請(qǐng)求,經(jīng)總線訪問(wèn)內(nèi)存或I/O端口進(jìn)行存取。答:組成:4個(gè)16位的段寄存器(CS、DS、ES、SS);1個(gè)16位的指令指針寄存器IP;1個(gè)20位的地址加法器;1個(gè)指令隊(duì)列(長(zhǎng)度為6個(gè)字節(jié));I/O控制電路(總線控制邏輯);
17、內(nèi)部暫存器。段寄存器和地址加法器:8086的內(nèi)存空間為1M,地址線為20根,但是8086的內(nèi)部寄存器只有16位,因此采用“段加偏移”技術(shù)來(lái)解決這一問(wèn)題,由段寄存器提供段地址,左移4位形成段基址,通過(guò)地址加法器與有效地址相加得到20位物理地址。指令隊(duì)列:指令隊(duì)列由6字節(jié)的寄存器組成,最多可以存入6字節(jié)的指令代碼,8086執(zhí)行指令時(shí),將從內(nèi)存或則存儲(chǔ)器中取出一條或則幾條指令依次存入指令隊(duì)列緩沖器里,他們采用“先進(jìn)先出”的原則,順序取到EU中去執(zhí)行16位指令指針:IP的功能相當(dāng)于8位CPU中的PC,正常運(yùn)行時(shí),IP中含有BIU要去的銷一條指令的偏移地址,在程序運(yùn)行時(shí)能自動(dòng)加1修正,使之指向下一條指令
18、。答:并行操作方式是指EU和BIU著兩部分同時(shí)工作,EU但愿從指令隊(duì)列頭中取指令,只要指令隊(duì)列不是空,他就一直執(zhí)行,無(wú)需等待。由于8086中的BIU和EU是分開(kāi)獨(dú)立設(shè)計(jì)的,因此,在一般情況下,CPU執(zhí)行完一條指令后就可以立即執(zhí)行下一條指令,無(wú)需等待。因此說(shuō)8086可以并行操作。當(dāng)EU在執(zhí)行完轉(zhuǎn)移、調(diào)用(包括子程序調(diào)用和中斷調(diào)用)和返回指令時(shí),因指令的執(zhí)行順序發(fā)生跳轉(zhuǎn),原來(lái)預(yù)取到指令隊(duì)列中的指令將不再執(zhí)行,需清空指令隊(duì)列緩沖器。在此情況下,EU才需要等待BIU從新的地址重新開(kāi)始提取指令。答:邏輯地址是指未定位之前在程序中存在的地址,由段地址和偏移地址組成。物理地址是實(shí)際訪問(wèn)存儲(chǔ)器時(shí)的地址(通過(guò)2
19、0位地址總線傳遞)。為什么要引入段加偏移思想:有1M的存儲(chǔ)空間,有20根地址線,而CPU的指令指針和堆棧指針都是16位的,只能直接尋址64KB的地址空間,為了能尋址1MB的空間,需要把存儲(chǔ)器氛圍若干段。2存儲(chǔ)器的分段的機(jī)制允許重定位,由于段寄存器里的段地址可以由程序來(lái)重新設(shè)定,因而是的程序和數(shù)據(jù)不需要進(jìn)行任何修改,就能使他們重定位。段加偏移的含義是:利用16位的段寄存器的內(nèi)容確定20位起始地址的高16位,由IP或由EU按照尋址方式找出的16位偏移地址,然后將段基址與偏移地址相加得到一個(gè)20位的實(shí)際地址,以對(duì)存儲(chǔ)單元尋址。答:指令隊(duì)列緩沖器的作用是存放從內(nèi)存或則存儲(chǔ)器中取出的指令,供EU執(zhí)行。8
20、086的指令隊(duì)列由6字節(jié)的寄存器組成,8088的指令隊(duì)列由4字節(jié)的寄存器組成。答:不同。段地址左移4位就得到了段基址;是;段寄存器中的內(nèi)容左移4位得到段基址。答:當(dāng)CPU取指或與I/O端口或者存儲(chǔ)器交換數(shù)據(jù)的時(shí)候才執(zhí)行總線周期。T1T4狀態(tài)。如果存儲(chǔ)器或則外設(shè)的速度比較慢,不能及時(shí)跟上CPU的速度時(shí),存儲(chǔ)器或則外設(shè)通過(guò)一個(gè)READY信號(hào)在T3啟動(dòng)之前發(fā)送一個(gè)“沒(méi)有準(zhǔn)備好”的信號(hào),并且CPU會(huì)在T3啟動(dòng)后插入1個(gè)或多個(gè)Tw等待狀態(tài)。答:ALE信號(hào)時(shí)地址鎖存信號(hào)(AddressLockEnable),它通知地址鎖存器8282當(dāng)前地址為有效地址,可以鎖存。不能。DT/R(非)控制8286的數(shù)據(jù)傳輸方
21、向。當(dāng)DMA請(qǐng)求時(shí),它被置于高阻狀態(tài)。答:最大工作方式和最小工作方式。MN/MX(非)(非:就是對(duì)MX取反)引腳來(lái)控制。最小工作方式即單處理器系統(tǒng)方式;在此方式下,全部控制信號(hào)由CPU本身提供,它適合于較小規(guī)模的應(yīng)用。CPU工作于最大工作方式時(shí),系統(tǒng)的控制信號(hào)由8288總線控制其提供,通常,在最大方式系統(tǒng)中一般包含兩個(gè)或多個(gè)處理器。答(1)立即數(shù)尋址(2)直接尋址(3)變址尋址(4)變址尋址(5)寄存器尋址(6)寄存器相對(duì)間接尋址(7)隱含尋址(8)寄存器尋址(9)I/O間接尋址(10)基址尋址(1)PA=(DS)*16+(DI)(2)PA=(DS)*16+(BX)+(SI)PA=(DS)*1
22、6+8+(BX)+(DI)PA=(ES)*16+(BX)PA=(DS)*16+2400HPA=PA=(DS)*16+(BX)+(DI)+1200HPA=(SS)*16+(BP)+(SI)PA=(DS)*16+(BX)+(DI)+1200HIP不可編程訪問(wèn),或IP不可作為源操作數(shù)出現(xiàn)在普通指令中。(CS,IP,FLAG等都不可編程訪問(wèn))(2)cs不可編程訪問(wèn)。(3)SI+2是對(duì)寄存器的非法使用(應(yīng)為SI+2)(4)MOV指令的目標(biāo)操作數(shù)不能為立即數(shù)(5)PUSH指令的操作數(shù)不能為立即數(shù)(6)未指明數(shù)據(jù)長(zhǎng)度(可以改為INCWORDPTRBX)(7)乘數(shù)不能為立即數(shù)且MUL只能完成無(wú)符號(hào)數(shù)的乘法(8
23、)未知名數(shù)據(jù)長(zhǎng)度(可改為ADDWORDPTR2400H,2AH)(9)MOV指令的兩操作數(shù)不能同時(shí)為存儲(chǔ)器操作數(shù)(10)數(shù)據(jù)類型不匹配(可改為MOVSI,AX)(1)AX=0ABCH(2)AX=0ABBH(3)AX=00BBH(4)CL=04H(5)AL=76H(6)CL=76H(7)CL=EEH(8)AX=0076HBX=0076H(2)PA=(DS)*16+list+(bx)+(si)=11950HANDAH,0FHXORAL,F(xiàn)0HMOVCL,4SHRAL,CLMOVCL,4SHLAL,CL3.50ADDAX,AX;AX=6264HJZDONESHLCX,1;CX=0008HRORAX,
24、CX;AX=6462HDONE:ORAX,1234HAXDONE:ORAX,1234HAX=7672H3.57AX+DX=000B所以CF=0,AF=1,SF=0ZF=0,OF=0PF=1MOVAL,BLCBWIDIVCLMOVDL,2IMULDLMOVDX,AX3.70(5)ANDBP,CX(6)ANDBYTEPTRWAIT1,AL(3)ORSI,DX(5)ORBP,CXORDI,001FMOVSI,DIMOVCL,3SHRDI,CLSHLAL,11)JMPDI:該指令為段內(nèi)間接轉(zhuǎn)移。DI中的內(nèi)容為指向存儲(chǔ)單元的偏移地址,從該地址開(kāi)始的2個(gè)字節(jié)中存放著要跳轉(zhuǎn)到的指令的偏移地址,執(zhí)行指令時(shí),將
25、該偏移地址(DS:DI和DS:DI+1)中的內(nèi)容送IP,段地址不變。2)JMPFARPTRDI:該指令為段間間接遠(yuǎn)轉(zhuǎn)移。DI中的內(nèi)容為指向存儲(chǔ)單元的偏移地址,從該地址開(kāi)始的4個(gè)字節(jié)中存放著要跳轉(zhuǎn)到的指令的目標(biāo)地址,其中,前2個(gè)字節(jié)為偏移地址,后2個(gè)字節(jié)為段地址。執(zhí)行指令時(shí),將該偏移地址送IP,段地址送CS。CLDMOVCX,100MOVSI,6180HMOVDI,2000HREPMOVSBDECDISTD;也可直接用MOVDI,2000HMOVCX,100SCAN:SCASBJNZNEXTINCDIMOVBYTEPTRDI,(或20H)DECDINEXT:LOOPSCANMOVAH,4CH;終
26、止程序,返回DOSINT21H答:答案參見(jiàn)p95RET彈出值p99IRET第四章第四章17匯編語(yǔ)言是直接面向微處理器編程的程序設(shè)計(jì)語(yǔ)言,具有執(zhí)行速度快和易于實(shí)現(xiàn)對(duì)硬件的控制等獨(dú)特的優(yōu)點(diǎn),所以至今仍然是使用得較多的編程語(yǔ)言。特別是在對(duì)于程序的空間和時(shí)間要求很高的場(chǎng)合,以及需要直接控制設(shè)備的應(yīng)用場(chǎng)合,匯編語(yǔ)言更是必不可少。18匯編語(yǔ)句的4個(gè)字段是:1)名字或標(biāo)號(hào);2)操作碼(指令助記符)或微操作命令;3)操作數(shù)表(操作數(shù)或地址)4)注釋匯編語(yǔ)句的種類:(3種):指令語(yǔ)句,偽指令語(yǔ)句,宏指令語(yǔ)句20.指令性語(yǔ)句格式:標(biāo)號(hào):前綴指令助記符操作數(shù)表;注釋21偽指令性語(yǔ)句格式:名字偽指令參數(shù)表;注釋22.
27、表達(dá)式的求值是由匯編程序完成的。23邏輯運(yùn)算符出現(xiàn)在操作數(shù)中時(shí)為微操作,其功能在匯編時(shí)完成例如MOVAX,75A6HAND2465H關(guān)系運(yùn)算符:EQ、NE、LT、GT、LE、GE。說(shuō)明:關(guān)系運(yùn)算的結(jié)果是一個(gè)常數(shù)(布爾值)。關(guān)系成立,結(jié)果為0FFFFH,否則,為0。變量的定義:1)VARDB12;2)VARDB12DUP(0)(字節(jié)串/字符串)VARDW12DUP()(字串)4)VARDB125DUP(5)(字節(jié)串,只給部分字節(jié)賦值)分析運(yùn)算符:分析運(yùn)算符用來(lái)把存儲(chǔ)器操作數(shù)(變量或標(biāo)號(hào))分解為它的組成部分(段地址、偏移值、類型、數(shù)據(jù)字節(jié)總數(shù)、數(shù)據(jù)項(xiàng)總數(shù)等),并以數(shù)值形式回送給變量或標(biāo)號(hào)(例子見(jiàn)教
28、材P136)。SEG回送變量或標(biāo)號(hào)的段地址;OFFSET回送變量或標(biāo)號(hào)的偏移量;TYPE回送反映變量或標(biāo)號(hào)類型的一個(gè)數(shù)值;SIZE回送變量數(shù)據(jù)區(qū)的字節(jié)總數(shù);LENGTH回送變量數(shù)據(jù)區(qū)的數(shù)據(jù)項(xiàng)總數(shù);HIGH取地址表達(dá)式或16位絕對(duì)值的高8位;LOW取地址表達(dá)式或16位絕對(duì)值的低8位;$地址計(jì)數(shù)器假定進(jìn)行匯編時(shí),為VAR分配的偏移地址為0074H那么匯編偽指令:VARDW1,2,$+4,3,4,$+后4,該存儲(chǔ)區(qū)的存儲(chǔ)情況如何在指令中引用$時(shí),$就表示該指令首地址,與$本身所指向單元無(wú)關(guān)。比如指令:JNZ$+6該指令的轉(zhuǎn)移地址是JNZ指令的首地址加上6。當(dāng)然,$+6必須是某一條指令的首地址,這樣才
29、能達(dá)到正確轉(zhuǎn)移的目的。及BIOS中斷調(diào)用前七個(gè)第四章習(xí)題整理第四章習(xí)題整理AX=0020HBX=0202HCX=0220HDATASEGMENTXDBYDBKDBDATASEGMENTCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAL,XMOVBL,YCMPAL,0JEABEJGABCJLBBC;落在坐標(biāo)軸上;落在第1、4象限;落在第2、3象限ABC:CMPBL,0JEABEJGABD;Y0,則落在第1象限MOVK,4;Y0,則落在第2象限MOVK,3;Y0,則落在第3象限ABD:MOVK,1BBD:MOVK,2ABE:MOVK,0CODEENDSENDST
30、ARTDATASEGMENTCHAR1DBabcdefNEQU$-CHAR1CHAR2DBNDUP(0)CODESEGMENTASSUMECS:CODE,DS:DATASTART:CLDMOVCX,NLEASI,CHAR1LEADI,CHAR2NEXT:LODSBSUBAL,32;或20H,因小寫(xiě)字母的ASCII碼值比大寫(xiě)字母大32STOSBLOOPNEXTCODEENDSENDSTARTDATASEGMENTBUFDB100DUP()NEQU$-BUFLENDWCODESEGMENTASSUMECS:CODE,DS:DATASTART:CLDMOVAX,DATAMOVDS,AXMOVCX,N
31、MOVDI,OFFSETBUFMOVAL,AREPNESCASBDECDILEASI,BUF;有這兩句更好一點(diǎn)SUBDI,SI;有這兩句更好一點(diǎn)MOVLEN,DIMOVAH,4CHINT21HCODEENDSENDSTART(1)BX=54CBH(2)BX=54EBH(3)BX=0000H(4)543BH(5)BX=545CH(6)BX=54A3HPLENTH的值是34,其物理意義:變量P1和P2共占用了34字節(jié)的內(nèi)存空間。P151冒泡排序法datasegmentbufdb11,-22,33,05,-7(當(dāng)然也可這樣:bufdb10dup()NEQU$-bufmindbmaxdbdataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovcx,N-1;比較次數(shù)(找最大數(shù)和最小數(shù))movsi,0moval,bufsi;大數(shù)放入AL寄存器movbl,bufsi;小數(shù)放入BL寄存器next:cmpal,bufsi+1jgesto1moval,bufsi+1sto1:cmpbl,si+1jlesto2movbl
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度勞動(dòng)合同解除與競(jìng)業(yè)限制服務(wù)合同
- 2025年度招生代理協(xié)議書(shū):高考改革試點(diǎn)招生代理
- 2025年度個(gè)人間寵物養(yǎng)護(hù)服務(wù)合作協(xié)議
- 親子托育中心裝修合同模板
- 冰雪運(yùn)動(dòng)項(xiàng)目績(jī)效評(píng)估報(bào)告
- 小麥-冰草新種質(zhì)中多小穗數(shù)基因定位
- 實(shí)驗(yàn)室改造合同模版
- 花店改造保密合同條款
- 二零二五年度辦事處業(yè)務(wù)連續(xù)性風(fēng)險(xiǎn)評(píng)估與服務(wù)協(xié)議
- 倉(cāng)儲(chǔ)物流裝修貸款協(xié)議
- (完整)PEP人教版小學(xué)生英語(yǔ)單詞四年級(jí)上冊(cè)卡片(可直接打印)
- 面神經(jīng)疾病課件
- 基本公共衛(wèi)生服務(wù)項(xiàng)目績(jī)效考核的課件
- 三年級(jí)下冊(cè)小學(xué)科學(xué)活動(dòng)手冊(cè)答案
- 國(guó)家電網(wǎng)有限公司十八項(xiàng)電網(wǎng)重大反事故措施(修訂版)
- 班、團(tuán)、隊(duì)一體化建設(shè)實(shí)施方案
- 最全的人教初中數(shù)學(xué)常用概念、公式和定理
- 橋面結(jié)構(gòu)現(xiàn)澆部分施工方案
- 開(kāi)網(wǎng)店全部流程PPT課件
- 人教部編版四年級(jí)語(yǔ)文下冊(cè)《第1課 古詩(shī)詞三首》教學(xué)課件PPT小學(xué)優(yōu)秀公開(kāi)課
- 模具數(shù)控加工技術(shù)概述
評(píng)論
0/150
提交評(píng)論