匯編語(yǔ)言期末復(fù)習(xí)總結(jié)(完整版)_第1頁(yè)
匯編語(yǔ)言期末復(fù)習(xí)總結(jié)(完整版)_第2頁(yè)
匯編語(yǔ)言期末復(fù)習(xí)總結(jié)(完整版)_第3頁(yè)
匯編語(yǔ)言期末復(fù)習(xí)總結(jié)(完整版)_第4頁(yè)
匯編語(yǔ)言期末復(fù)習(xí)總結(jié)(完整版)_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——匯編語(yǔ)言期末復(fù)習(xí)總結(jié)(完整版)〔習(xí)題1.24〕說(shuō)明以下指令中源操作數(shù)的尋址方式?假使BX=2000H,DI=40H,給出DX的值或有效地址EA的值。

(1)movdx,[1234h]直接尋址,EA=1234H(3)movdx,bx寄放器尋址,DX=2000H

(6)movdx,[bx+di]基址變址尋址,EA=2040H

第2章8086的指令系統(tǒng)

〔習(xí)題2.1〕已知DS=2000H、BX=0100H、SI=0002H,存儲(chǔ)單元[20230H]~[20233H]依次存放12345678H,[21200H]~[21203H]依次存放2A4CB765H,說(shuō)明以下每條指令執(zhí)行完后AX寄放器的內(nèi)容。

(1)movax,1200hAX=1200H(2)movax,bxAX=0100H

(3)movax,[1200h]AX=4C2AH;偏移地址=1200h(4)movax,[bx]AX=3412H;偏移地址=bx=0100h

(5)movax,[bx+1100h]AX=4C2AH;偏移地址=bx+1100h=1200h

(6)movax,[bx+si]AX=7856H;偏移地址=bx+si=0100h+0002h=0102h(7)movax,[bx][si+1100h]AX=65B7H;偏移地址bx+si+1100h=0100h+0002h+1100h=1202h

〔習(xí)題2.2〕指出以下指令的錯(cuò)誤

(1)movcx,dl兩操作數(shù)類型不匹配

(2)movip,axIP指令指針阻止用戶訪問(wèn)

(3)moves,1234h馬上數(shù)不允許傳給段寄放器(DS、CS、SS、ES)(4)moves,ds段寄放器之間不允許傳送(5)moval,300兩操作數(shù)類型不匹配(6)mov[sp],ax目的操作數(shù)應(yīng)為[SI](7)movax,bx+di源操作數(shù)應(yīng)為[BX+DI](8)mov20h,ah馬上數(shù)不能作目的操作數(shù)

〔習(xí)題2.8〕請(qǐng)分別用一條匯編語(yǔ)言指令完成如下功能:

(1)把BX寄放器和DX寄放器的內(nèi)容相加,結(jié)果存入DX寄放器。(2)用寄放器BX和SI的基址變址尋址方式把存儲(chǔ)器的一個(gè)字節(jié)與AL寄放器的內(nèi)容相加,并把結(jié)果送到AL中。

(3)用BX和位移量0B2H的寄放器相對(duì)尋址方式把存儲(chǔ)器中的一個(gè)字和CX寄放器的內(nèi)容相加,并把結(jié)果送回存儲(chǔ)器中。(4)用位移量為0520H的直接尋址方式把存儲(chǔ)器中的一個(gè)字與數(shù)3412H相加,并把結(jié)果送回該存儲(chǔ)單元中。

(5)把數(shù)0A0H與AL寄放器的內(nèi)容相加,并把結(jié)果送回AL中。(1)ADDDX,BX

(2)ADDAL,byteptr[BX+SI](3)ADD[BX+0B2H],CX

(4)ADDWORDPTR[0520H],3412H(5)ADDAL,0A0H

〔習(xí)題2.10〕指出以下指令的錯(cuò)誤:

(1)xchg[si],30hxchg的操作數(shù)不能是馬上數(shù)(2)popcs不應(yīng)對(duì)CS直接賦值

(3)sub[si],[di]兩個(gè)操作數(shù)不能都是存儲(chǔ)單元(4)pushah堆棧的操作數(shù)不能是字節(jié)變量(5)adcax,dsadc的操作數(shù)不能是段寄放器(6)add[si],80h沒有確定是字節(jié)還是字操作(7)shl[si],1沒有指定指向數(shù)據(jù)的大?。?)rordx,alal應(yīng)當(dāng)換成cl

〔習(xí)題2.22〕假設(shè)AX和SI存放的是有符號(hào)數(shù),DX和DI存放的是無(wú)符號(hào)數(shù),請(qǐng)用比較指令和條件轉(zhuǎn)移指令實(shí)現(xiàn)以下判斷:(1)若DX>DI,轉(zhuǎn)到above執(zhí)行cmpdx,di

jaabove;=j(luò)nbeabove(2)若AX>SI,轉(zhuǎn)到greater執(zhí)行cmpax,si

jggreater;=j(luò)nlegreater(3)若CX=0,轉(zhuǎn)到zero執(zhí)行cmpcx,0

jzzero;=j(luò)cxzzero

〔習(xí)題2.25〕對(duì)下面要求,分別給出3種方法,每種方法只用一條指令。(1)使CF=0(2)使AX=0(1)解答:

clc(清零)

andax,ax(規(guī)律操作不會(huì)進(jìn)位)orax,ax(2)解答:xorax,axandax,0movax,0

〔習(xí)題3.7〕假設(shè)myword是一個(gè)字變量,mybyte1和mybyte2是兩個(gè)字節(jié)變量,指出以下語(yǔ)句中的錯(cuò)誤原因。

(1)movbyteptr[bx],10001000超出了一個(gè)字節(jié)范圍

(2)movbx,offsetmyword[si]寄放器的值只有程序執(zhí)行時(shí)才能確定,而offset是匯編過(guò)程計(jì)算的偏移地址,故無(wú)法確定,改為leabx,myword[si]

(3)cmpmybyte1,mybyte2兩個(gè)都是存儲(chǔ)單元,指令不允許

(4)moval,mybyte1+mybyte2變量值只有執(zhí)行時(shí)才確定,匯編過(guò)程不能計(jì)算(5)subal,myword字節(jié)量AL與字變量myword,類型不匹配

(6)jnzmywordJnz指令只有相對(duì)尋址方式,不支持間接尋址方式〔〔習(xí)題3.10〕畫圖說(shuō)明以下語(yǔ)句分派的存儲(chǔ)空間及初始化的數(shù)據(jù)值:(1)byte_varDB’ABC’,10,10h,’EF’,3DUP(-1,?,3DUP(4))(2)word_varDW10h,-5,’EF’,3DUP(?)

(1)從低地址開始,依次是(十六進(jìn)制表達(dá)):

4142430a104546ff-040404ff-040404ff-040404(2)從低地址開始,依次是(十六進(jìn)制表達(dá)):1000FBFF4645------

〔習(xí)題3.11〕請(qǐng)?jiān)O(shè)置一個(gè)數(shù)據(jù)段mydataseg,依照如下要求定義變量:(1)my1b為字符串變量:PersonalComputer(2)my2b為用十進(jìn)制數(shù)表示的字節(jié)變量:20(4)my4b為用二進(jìn)制數(shù)表示的字節(jié)變量:20(5)my5w為20個(gè)未賦值的字變量(6)my6c為100的常量

(7)my7c表示字符串:PersonalComputermydatasegsegment

my1bdb‘PersonalComputer’my2bdb20

my3bdb14h;20hmy4bdb00010100bmy5wdw20dup(?)

my6cequ100;my6c=100my7cequmydatasegends

第4章基本匯編語(yǔ)言程序設(shè)計(jì)

〔習(xí)題4.6〕編制一個(gè)程序,把變量bufX和bufY中較大者存入bufZ;若兩者相等,則把其中之一存入bufZ中。假設(shè)變量存放的是8位無(wú)符號(hào)數(shù)。.modelsmall.stack256.databufxdb?bufYdb?bufzdb?.code.startup

moval,bufXmovbl,bufYcmpal,bljanext

movbufZ,bljmpdone

next:movbufZ,aldone:.exit0End

大題

1.顯示HelloWorld字符串。.modelsmall;定義程序的存儲(chǔ)模型,一般程序采用小型模型.stack;堆棧段.data;數(shù)據(jù)段stringdb'HelloWorld!',0dh,0ah,'$';定義需要顯示的字符串.code;代碼段.startup;程序的起始點(diǎn),建立DS、SS內(nèi)容movdx,offsetstring;指定字符串在數(shù)據(jù)段的偏移地址movah,9int21h;調(diào)用功能調(diào)用顯示信息.exit0;程序終止點(diǎn),返回DOSend;匯編終止2.COM程序?qū)崿F(xiàn)任意鍵后響鈴.modeltiny.code.startupmovdx,offsetstringmovah,9;9號(hào)調(diào)用輸出字符串int21hmovah,01h;1號(hào)調(diào)用,從stdin讀取字符int21hmovah,02hmovdl,07hint21h;2號(hào)調(diào)用,向stdout輸出字符(07H-\\a響鈴).exit0stringdb'Pressanykeytocontinue!$';數(shù)據(jù)安排在不與代碼沖突的地方end3.設(shè)有一個(gè)64位的數(shù)據(jù),要求將它算術(shù)左移8位(從高字節(jié)開始,從右向左左移8位).modelstmall.stack.dataqvardq1234567887654321h;dq表示4個(gè)字4*16=64bytes.code.startupmovcx,7movsi,6;1again:moval,byteptrqvar[si]movbyteptrqvar[si+1],al;si-1descsi;incsiloopagainmovbyteptrqvar[si+1],0;si4.計(jì)算1~100的和,將結(jié)果放入SUM中.modelstmall.stack.datasumdw?.code.startupxorax,axmovcx,100again:addax,cxloopagainmovsum,ax.exit0end5.把一個(gè)字符串中所有的大小改小寫,該字符串以’0’結(jié)尾。.modelstmall.stack.datastringdb'HELLOworld!',0.code.startupmovbx,offsetstringagain:moval,[bx]oral,aljzdonecmpal,'A'jbnextcmpal,'Z'janextoral,20hmov[bx],alnext:incbxjmpagaindone:.exit0end6.編制一個(gè)程序,把變量bufX和bufY中較大者存入bufZ;若兩者相等。則將其中之一存入bu

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論