微機原理知識點總結(jié)_第1頁
微機原理知識點總結(jié)_第2頁
微機原理知識點總結(jié)_第3頁
微機原理知識點總結(jié)_第4頁
微機原理知識點總結(jié)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第一章.辨析三個概念:微處理器、微型計算機、微型計算機系統(tǒng)微處理器:簡稱DP或MP(Microprocessor)是指由一片或幾片大規(guī)模集成電路組成的具有運算器和控制器功能的中央處理器部件,又稱為微處理機。微型計算機:簡稱DC或MC,是指以微處理器為核心,配上存儲器、輸入/輸出接口電路及系統(tǒng)總線所組成的計算機(又稱主機或微電腦)。微型計算機系統(tǒng)(主機+外設(shè)+軟件配置)(Microcomputersystem)簡稱DCS或MCS,是指以微型計算機為中心,以相應(yīng)的外圍設(shè)備、電源和輔助電路(統(tǒng)稱硬件)以及指揮微型計算機工作的系統(tǒng)軟件所構(gòu)成的系統(tǒng)。.微機系統(tǒng)結(jié)構(gòu)(三種總線結(jié)構(gòu)):數(shù)據(jù)總線,地址總線,控

2、制總線第三章內(nèi)部結(jié)構(gòu)由兩部分組成:總線接口單元BIU(BusInterfaceUnit);執(zhí)行單元EU(ExecutionUnit).總線接口單元BIU組成:4個16位的段寄存器(CS、DS、ES、SS);1個16位的指令指針寄存器IP;1個20位的地址加法器;1個指令隊列(長度為6個字節(jié));I/O控制電路(總線控制邏輯);內(nèi)部暫存器。BIU的功能:根據(jù)EU的請求負責CPU與內(nèi)存或I/O端口傳送指令或數(shù)據(jù)。BIU從內(nèi)存取指令送到指令隊列當EU執(zhí)行指令時,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個數(shù)據(jù)寄存器)BP(基址指針寄存器)SP(堆棧指針寄存器)SI(源變址寄存器)口1(目的變址寄存器)數(shù)據(jù)暫存寄存器標志寄存器FREU控制電路作用:負責執(zhí)行指令,執(zhí)行的指令從BIU的指令隊列中取得;運算結(jié)果和所需數(shù)據(jù),則由EU向BIU發(fā)出請求,經(jīng)總線訪問內(nèi)存或I/O端口進行存取。4物理地址與邏輯地址有什么區(qū)別答:邏輯地址是指未定位之前在程序中存在的地址,由段地址和偏移地址組成。物理地址是實際訪問存儲器時的地址(通過20位地址總線傳遞)。5.在什么情況下8086的執(zhí)行單元(EU)才需要等待總線接口單元(BIU)提取

4、指令答:EU在執(zhí)行完轉(zhuǎn)移、調(diào)用(包括子程序調(diào)用和中斷調(diào)用)和返回指令時,因指令的執(zhí)行順序發(fā)生跳轉(zhuǎn),原來預(yù)取到指令隊列中的指令將不再執(zhí)行,需清空指令隊列緩沖器。在此情況下,EU才需要等待BIU從新的地址重新開始提取指令。6存儲器為什么要分段(段加偏移)答:有1M的存儲空間,有20根地址線,而CPU的指令指針和堆棧指針都是16位的,只能直接尋址64KB的地址空間,為了能尋址1MB的空間,需要把存儲器分為若干段。2存儲器的分段的機制允許重定位,由于段寄存器里的段地址可以由程序來重新設(shè)定,因而使得程序和數(shù)據(jù)不需要進行任何修改,就能使他們重定位。7段地址和段基址概念辨析1)段地址:段寄存器的內(nèi)容,出現(xiàn)在

5、匯編后的機器指令中。2)段基址:段地址左移4位后形成的20位段起始地址。8.8086CPU系統(tǒng)中為什么要用地址鎖存器8086CPU由于引腳數(shù)量少,其地址總線采用了分時復(fù)用的雙重總線,僅在總線周期的Tl時鐘周期輸出地址信號,而在整個總線周期中地址信號需保持不變,這就需用地址鎖存器將T1周期發(fā)出的地址信號鎖存起來以在整個總線周期中都能使用,為此8086CPU在T1周期提供地址鎖存允許信號ALE(正脈沖),用ALE的下降沿將地址信息鎖存在地址鎖存器中(3分)共需3片73LS373芯片用作地址鎖存器,鎖存信息A19A0和BHE的最大工作模式和最小工作模式的區(qū)別答:最小工作方式即單處理器系統(tǒng)方式;在此方

6、式下,全部控制信號由CPU本身提供,它適合于較小規(guī)模的應(yīng)用。CPU工作于最大工作方式時,系統(tǒng)的控制信號由8288總線控制其提供,通常,在最大方式系統(tǒng)中一般包含兩個或多個處理器。10.什么叫重定位答:重定位是指一個完整的程序塊或數(shù)據(jù)塊可以在存儲器所允許的空間內(nèi)任意浮動并定位到一個新的可尋址的區(qū)域。11.8086指令系統(tǒng)的特點答:8086與8088的指令系統(tǒng)由8位的80808085指令系統(tǒng)擴展而來的,同時又能在其后續(xù)的80 x86系列的CPU上正確運行。其主要特點是:采用可變長指令,指令格式比較復(fù)雜。尋址方式靈活多樣,處理數(shù)據(jù)的能力比較強。有重復(fù)指令和乘、除運算指令。擴充了條件轉(zhuǎn)移、移位/循環(huán)指令

7、。為加強軟件中斷功能和支持多處理器系統(tǒng)的工作,增設(shè)了有關(guān)的指令。總線周期概念:總線周期通常是指微處理器完成一次訪存或I/O端口操作所需的時間。(類似于機器周期)在8086/8088中,一個最基本的總線周期由4個時鐘周期組成,分別稱為4個狀態(tài),即T1、T2、T3與T4這4個狀態(tài)。由T1狀態(tài):CPU往多路復(fù)用總線上發(fā)送地址信息,以選中所要尋址的存儲單元或外設(shè)端口的地址。由T2狀態(tài):CPU從總線上撤消地址,并使總線的低16位浮置成高阻狀態(tài),為傳送數(shù)據(jù)做準備。由T3狀態(tài),多路總線的高4位繼續(xù)提供狀態(tài)信息,而其低16位(對8088CPU則為低8位)上將出現(xiàn)由CPU寫出的數(shù)據(jù)或者CPU從存儲器或端口讀入的

8、數(shù)據(jù)。由說明:若訪問設(shè)備未準備好,則CPU會在T3之后自動插入1個或多個附加的時鐘周期Tw,這個Tw就叫等待狀態(tài)(CPU在每個總線周期的T3狀態(tài)開始對READY信號采樣。)由T4狀態(tài):CPU采樣數(shù)據(jù)總線,完成本次讀/寫操作,總線周期結(jié)束。(要對INTR信號進行采樣)由說明:只有BIU與內(nèi)存或I/O端口交換數(shù)據(jù),以及填充指令隊列時,BIU才執(zhí)行總線周期。除此之外,既不需要填充指令隊列,EU也沒有向BIU發(fā)出總線周期請求時,系統(tǒng)總線就處于空閑狀態(tài),進入空閑周期,空閑周期由一個或幾個Ti狀態(tài)組成。RESET復(fù)位后,標志寄存器與指令隊列緩沖器的原有信息被清除,IP與DS、SS和ES也被清零,而CS被置

9、為FFFFH。當RESET信號變?yōu)榈碗娖綍r,CPU就從FFFF0H開始執(zhí)行程序。在程序執(zhí)行時,RESET線保持低電平。.指令數(shù)據(jù)在存儲器中的存放若存放的信息為1個字時,則將字的低位字節(jié)放在低地址中,高位字節(jié)放在高地址中。(注:對存放的字,若低位字節(jié)從奇數(shù)地址開始存放,為非規(guī)則字;反之,為規(guī)則字。讀一個規(guī)則字需要訪問一次存儲器,讀一個非規(guī)則字需要訪問兩次存儲器)當存放的是雙字形式(這種數(shù)一般作為指針),其低位字是被尋址地址的偏移量;高位字則是被尋址地址所在的段地址。8086的存儲器為什么要分段答案見6808昭088指令的分類8086咫088的指令按功能可分為大類:數(shù)據(jù)傳送、算術(shù)運算、邏輯運算、串

10、操作、程序控制和CPU控制數(shù)據(jù)傳送指令(細分成4類)通用數(shù)據(jù)傳送指令MOV、PUSH、POP、XCHG、XLAT目標地址傳送指令LEA、LDS、LES標志位傳送指令LAHF、SAHF、PUSHF、POPFI/O數(shù)據(jù)傳送指令I(lǐng)N、OUT傳送指令:MOVDST,SRC執(zhí)行操作:(DST)(SRC)說明:可實現(xiàn)一個字節(jié)或字的傳送(例子見教材P66)。注意:DST、SRC不能同時為段寄存器MOVDS,ES立即數(shù)不能直接送段寄存器MOVDS,2000HDST不能是立即數(shù)和CSDST、SRC不能同時為存儲器尋址*不影響標志位進棧指令:PUSHSRC汪思:堆棧操作必須以字為單位。不影響標志位不能用立即尋址方

11、式PUSH1234HDST不能是CSPOPCS并非局限在棧頂操作MOVAX,BPSI交換指令:XCHGOPRI,OPR2執(zhí)行操作:(OPRI)(OPR2)汪思:不影響標志位不允許使用段寄存器不能在存儲器單元之間交換換碼指令:XLAT或XLATOPR(通過查表實現(xiàn))執(zhí)行操作:(AL)(BX)+(AL)例:MOVBX,OFFSETTABLE;(BX)=0040H(表預(yù)先建立在內(nèi)存)MOVAL,3;索引值XLATTABLE指令執(zhí)行后(AL)=3OH汪思:不影響標志位字節(jié)表格(長度不超過256字節(jié))首地址(BX)需轉(zhuǎn)換的代碼位移量(AL)目標地址傳送指令有效地址送寄存器指令:LEAREG,SRC執(zhí)行操

12、作:(REG)SRC(存儲器)指針送寄存器和DS指令:LDSREG,SRC執(zhí)行操作:(REG)(SRC)(DS)(SRC+2)相繼二字寄存器、DS指針送寄存器和ES指令:LESREG,SRC執(zhí)行操作:(REG)(SRC)(ES)(SRC+2)相繼二字寄存器、ES汪思:不影響標志位REG不能是段寄存器SRC必須為存儲器尋址方式標志位傳送指令標志送AH指令:LAHF執(zhí)行操作:(AH)(FLAGS的低字節(jié))AH送標志寄存器指令:SAHF*(置位/復(fù)位)執(zhí)行操作:(FLAGS的低字節(jié))(AH)標志進棧指令:PUSHF(轉(zhuǎn)子/中斷調(diào)用)執(zhí)行操作:(SP)(SP)-2(SP)+1,(SP)(FLAGS)標

13、志出棧指令:POPF*(轉(zhuǎn)子/中斷調(diào)用)執(zhí)行操作:(FLAGS)(SP)+1,(SP)(SP)(SP)+2*影響標志位二、算術(shù)運算類指令(共20條指令)加法指令A(yù)DD、ADC、INC減法指令SUB、SBB、DEC、NEG、CMP乘法指令MUL、IMUL除法指令DIV、IDIV、CBW、CWD執(zhí)行REPMOVS之前,應(yīng)先做好(初始化工作):源串首地址(末地址)fSI目的串首地址(末地址)fDI串長度fCX(最大64KB)建立方向標志(CLD使DF=0,STD使DF=1)一個串傳送的例子: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;目標串首地址movcx,17;串長度cld;建立方向標志(CLD使DF=0,STD使DF=1)repmovsb;串傳送codeends例(續(xù)):把附加段中的10個字節(jié)緩沖區(qū)置為20Hleadi,mess2moval,20Hmovcx,10cldrepstosb比較例中兩串是

15、否完全相同,若兩串相同,則BX寄存器內(nèi)容為0;若兩串不同,則BX指向源串中第1個不相同字節(jié)的地址,且該字節(jié)的內(nèi)容保留在AL寄存器中。CLDMOVCX,100MOVSI,2500HMOVDI,1400HREPECPMSB;串比較,直到ZF=0或CX=0JZEQQ;兩串相同,置BX為0DECSI;將指針修改回第1個不相同字節(jié)處MOVBX,SIMOVAL,SIJMPSTOP;必須跳轉(zhuǎn),否則仍繼續(xù)執(zhí)行EQQEQQ:MOVBX,0STOP:HLT例:試比較兩個無符號數(shù)80H和79H,則用下面的指令,即MOVAL,80HCMPAL,79HJAABOVE例:試比較兩個有符號數(shù)80H和79H,則用下面的指令,

16、即MOVAL,80HCMPAL,79HJGGREATER第三章習題答案整理答:由兩部分組成:總線接口單元BIU(BusInterfaceUnit),執(zhí)行單元EU(ExecutionUnit).BIU的功能是根據(jù)執(zhí)行單元的請求負責CPU與I/O端口或則存儲器之間的數(shù)據(jù)傳輸。EU單元的作用是:負責執(zhí)行指令,執(zhí)行的指令從BIU的指令隊列中取得;運算結(jié)果和所需數(shù)據(jù),則由EU向BIU發(fā)出請求,經(jīng)總線訪問內(nèi)存或I/O端口進行存取。答:組成:4個16位的段寄存器(CS、DS、ES、SS);1個16位的指令指針寄存器IP;1個20位的地址加法器;1個指令隊列(長度為6個字節(jié));I/O控制電路(總線控制邏輯);

17、內(nèi)部暫存器。段寄存器和地址加法器:8086的內(nèi)存空間為1M,地址線為20根,但是8086的內(nèi)部寄存器只有16位,因此采用“段加偏移”技術(shù)來解決這一問題,由段寄存器提供段地址,左移4位形成段基址,通過地址加法器與有效地址相加得到20位物理地址。指令隊列:指令隊列由6字節(jié)的寄存器組成,最多可以存入6字節(jié)的指令代碼,8086執(zhí)行指令時,將從內(nèi)存或則存儲器中取出一條或則幾條指令依次存入指令隊列緩沖器里,他們采用“先進先出”的原則,順序取到EU中去執(zhí)行16位指令指針:IP的功能相當于8位CPU中的PC,正常運行時,IP中含有BIU要去的銷一條指令的偏移地址,在程序運行時能自動加1修正,使之指向下一條指令

18、。答:并行操作方式是指EU和BIU著兩部分同時工作,EU但愿從指令隊列頭中取指令,只要指令隊列不是空,他就一直執(zhí)行,無需等待。由于8086中的BIU和EU是分開獨立設(shè)計的,因此,在一般情況下,CPU執(zhí)行完一條指令后就可以立即執(zhí)行下一條指令,無需等待。因此說8086可以并行操作。當EU在執(zhí)行完轉(zhuǎn)移、調(diào)用(包括子程序調(diào)用和中斷調(diào)用)和返回指令時,因指令的執(zhí)行順序發(fā)生跳轉(zhuǎn),原來預(yù)取到指令隊列中的指令將不再執(zhí)行,需清空指令隊列緩沖器。在此情況下,EU才需要等待BIU從新的地址重新開始提取指令。答:邏輯地址是指未定位之前在程序中存在的地址,由段地址和偏移地址組成。物理地址是實際訪問存儲器時的地址(通過2

19、0位地址總線傳遞)。為什么要引入段加偏移思想:有1M的存儲空間,有20根地址線,而CPU的指令指針和堆棧指針都是16位的,只能直接尋址64KB的地址空間,為了能尋址1MB的空間,需要把存儲器氛圍若干段。2存儲器的分段的機制允許重定位,由于段寄存器里的段地址可以由程序來重新設(shè)定,因而是的程序和數(shù)據(jù)不需要進行任何修改,就能使他們重定位。段加偏移的含義是:利用16位的段寄存器的內(nèi)容確定20位起始地址的高16位,由IP或由EU按照尋址方式找出的16位偏移地址,然后將段基址與偏移地址相加得到一個20位的實際地址,以對存儲單元尋址。答:指令隊列緩沖器的作用是存放從內(nèi)存或則存儲器中取出的指令,供EU執(zhí)行。8

20、086的指令隊列由6字節(jié)的寄存器組成,8088的指令隊列由4字節(jié)的寄存器組成。答:不同。段地址左移4位就得到了段基址;是;段寄存器中的內(nèi)容左移4位得到段基址。答:當CPU取指或與I/O端口或者存儲器交換數(shù)據(jù)的時候才執(zhí)行總線周期。T1T4狀態(tài)。如果存儲器或則外設(shè)的速度比較慢,不能及時跟上CPU的速度時,存儲器或則外設(shè)通過一個READY信號在T3啟動之前發(fā)送一個“沒有準備好”的信號,并且CPU會在T3啟動后插入1個或多個Tw等待狀態(tài)。答:ALE信號時地址鎖存信號(AddressLockEnable),它通知地址鎖存器8282當前地址為有效地址,可以鎖存。不能。DT/R(非)控制8286的數(shù)據(jù)傳輸方

21、向。當DMA請求時,它被置于高阻狀態(tài)。答:最大工作方式和最小工作方式。MN/MX(非)(非:就是對MX取反)引腳來控制。最小工作方式即單處理器系統(tǒng)方式;在此方式下,全部控制信號由CPU本身提供,它適合于較小規(guī)模的應(yīng)用。CPU工作于最大工作方式時,系統(tǒng)的控制信號由8288總線控制其提供,通常,在最大方式系統(tǒng)中一般包含兩個或多個處理器。答(1)立即數(shù)尋址(2)直接尋址(3)變址尋址(4)變址尋址(5)寄存器尋址(6)寄存器相對間接尋址(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不可編程訪問,或IP不可作為源操作數(shù)出現(xiàn)在普通指令中。(CS,IP,FLAG等都不可編程訪問)(2)cs不可編程訪問。(3)SI+2是對寄存器的非法使用(應(yīng)為SI+2)(4)MOV指令的目標操作數(shù)不能為立即數(shù)(5)PUSH指令的操作數(shù)不能為立即數(shù)(6)未指明數(shù)據(jù)長度(可以改為INCWORDPTRBX)(7)乘數(shù)不能為立即數(shù)且MUL只能完成無符號數(shù)的乘法(8

23、)未知名數(shù)據(jù)長度(可改為ADDWORDPTR2400H,2AH)(9)MOV指令的兩操作數(shù)不能同時為存儲器操作數(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)容為指向存儲單元的偏移地址,從該地址開始的2個字節(jié)中存放著要跳轉(zhuǎn)到的指令的偏移地址,執(zhí)行指令時,將

25、該偏移地址(DS:DI和DS:DI+1)中的內(nèi)容送IP,段地址不變。2)JMPFARPTRDI:該指令為段間間接遠轉(zhuǎn)移。DI中的內(nèi)容為指向存儲單元的偏移地址,從該地址開始的4個字節(jié)中存放著要跳轉(zhuǎn)到的指令的目標地址,其中,前2個字節(jié)為偏移地址,后2個字節(jié)為段地址。執(zhí)行指令時,將該偏移地址送IP,段地址送CS。CLDMOVCX,100MOVSI,6180HMOVDI,2000HREPMOVSBDECDISTD;也可直接用MOVDI,2000HMOVCX,100SCAN:SCASBJNZNEXTINCDIMOVBYTEPTRDI,(或20H)DECDINEXT:LOOPSCANMOVAH,4CH;終

26、止程序,返回DOSINT21H答:答案參見p95RET彈出值p99IRET第四章第四章17匯編語言是直接面向微處理器編程的程序設(shè)計語言,具有執(zhí)行速度快和易于實現(xiàn)對硬件的控制等獨特的優(yōu)點,所以至今仍然是使用得較多的編程語言。特別是在對于程序的空間和時間要求很高的場合,以及需要直接控制設(shè)備的應(yīng)用場合,匯編語言更是必不可少。18匯編語句的4個字段是:1)名字或標號;2)操作碼(指令助記符)或微操作命令;3)操作數(shù)表(操作數(shù)或地址)4)注釋匯編語句的種類:(3種):指令語句,偽指令語句,宏指令語句20.指令性語句格式:標號:前綴指令助記符操作數(shù)表;注釋21偽指令性語句格式:名字偽指令參數(shù)表;注釋22.

27、表達式的求值是由匯編程序完成的。23邏輯運算符出現(xiàn)在操作數(shù)中時為微操作,其功能在匯編時完成例如MOVAX,75A6HAND2465H關(guān)系運算符:EQ、NE、LT、GT、LE、GE。說明:關(guān)系運算的結(jié)果是一個常數(shù)(布爾值)。關(guān)系成立,結(jié)果為0FFFFH,否則,為0。變量的定義:1)VARDB12;2)VARDB12DUP(0)(字節(jié)串/字符串)VARDW12DUP()(字串)4)VARDB125DUP(5)(字節(jié)串,只給部分字節(jié)賦值)分析運算符:分析運算符用來把存儲器操作數(shù)(變量或標號)分解為它的組成部分(段地址、偏移值、類型、數(shù)據(jù)字節(jié)總數(shù)、數(shù)據(jù)項總數(shù)等),并以數(shù)值形式回送給變量或標號(例子見教

28、材P136)。SEG回送變量或標號的段地址;OFFSET回送變量或標號的偏移量;TYPE回送反映變量或標號類型的一個數(shù)值;SIZE回送變量數(shù)據(jù)區(qū)的字節(jié)總數(shù);LENGTH回送變量數(shù)據(jù)區(qū)的數(shù)據(jù)項總數(shù);HIGH取地址表達式或16位絕對值的高8位;LOW取地址表達式或16位絕對值的低8位;$地址計數(shù)器假定進行匯編時,為VAR分配的偏移地址為0074H那么匯編偽指令:VARDW1,2,$+4,3,4,$+后4,該存儲區(qū)的存儲情況如何在指令中引用$時,$就表示該指令首地址,與$本身所指向單元無關(guān)。比如指令:JNZ$+6該指令的轉(zhuǎn)移地址是JNZ指令的首地址加上6。當然,$+6必須是某一條指令的首地址,這樣才

29、能達到正確轉(zhuǎn)移的目的。及BIOS中斷調(diào)用前七個第四章習題整理第四章習題整理AX=0020HBX=0202HCX=0220HDATASEGMENTXDBYDBKDBDATASEGMENTCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAL,XMOVBL,YCMPAL,0JEABEJGABCJLBBC;落在坐標軸上;落在第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,因小寫字母的ASCII碼值比大寫字母大32STOSBLOOPNEXTCODEENDSENDSTARTDATASEGMENTBUFDB100DUP()NEQU$-BUFLENDWCODESEGMENTASSUMECS:CODE,DS:DATASTART:CLDMOVAX,DATAMOVDS,AXMOVCX,N

31、MOVDI,OFFSETBUFMOVAL,AREPNESCASBDECDILEASI,BUF;有這兩句更好一點SUBDI,SI;有這兩句更好一點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(當然也可這樣: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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論