




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第三章 通用數(shù)據(jù)處理指令3.1 簡(jiǎn)答題(1)如何修改“MOV ESI, WORD PTR 250”語(yǔ)句使其正確?刪除“WORD PTR”即可(2)為什么說(shuō)“XCHG EDX,CX”是一條錯(cuò)誤的指令?源、目標(biāo)寄存器位數(shù)不同,不能用該指令進(jìn)行數(shù)據(jù)交換(3)說(shuō)IA-32處理器的堆?!跋蛳律L(zhǎng)”是什么意思?入棧時(shí)堆棧指針寄存器做減法操作,指向低地址;出棧時(shí)堆棧指針寄存器做加法操作,指向高地址(4)都是獲取偏移地址,為什么指令“LEA EBX,ESI”正確,而指令“mov ebx,offset ESI”就錯(cuò)誤?LEA指令時(shí)運(yùn)行時(shí)計(jì)算地址,OFFSET是匯編時(shí)取地址。(5)執(zhí)行了一條加法指令后,發(fā)現(xiàn)ZF1
2、,說(shuō)明結(jié)果是什么?表明運(yùn)算結(jié)果為0(6)INC、DEC、NEG和NOT都是單操作數(shù)指令,這個(gè)操作數(shù)應(yīng)該是源操作數(shù)還是目的操作數(shù)?既是源操作數(shù),也是目的操作數(shù)(7)大小寫字母轉(zhuǎn)換使用了什么規(guī)律?大小寫字母轉(zhuǎn)換利用它們的ASCII碼相差20H(9)除法指令“DIV ESI”的被除數(shù)是什么?被除數(shù)64位,在EDX和EAX中,EDX保存高32位、EAX保存低32位(10)邏輯與運(yùn)算為什么也稱為邏輯乘?運(yùn)算規(guī)則類似于2進(jìn)制乘法。3.2 判斷題(1)指令“MOV EAX,0”使EAX結(jié)果為0,所以標(biāo)志ZF1。錯(cuò),MOV指令不影響標(biāo)志(2)空操作NOP指令其實(shí)根本沒有指令。錯(cuò),(3)堆棧的操作原則是“先進(jìn)后
3、出”,所以堆棧段的數(shù)據(jù)除了PUSH和POP指令外,不允許其他方式讀寫。錯(cuò)(4)雖然ADD指令和SUB指令執(zhí)行后會(huì)影響標(biāo)志狀態(tài),但執(zhí)行前的標(biāo)志并不影響它們的執(zhí)行結(jié)果。對(duì)(5)80減90(8090)需要借位,所以執(zhí)行結(jié)束后,進(jìn)位標(biāo)志CF1。對(duì),減法時(shí)借位也用CF標(biāo)志反映(6)指令“INC ECX”和“ADD ECX,1”實(shí)現(xiàn)的功能完全一樣,可以互相替換。錯(cuò),INC 不影響CF位。(7)無(wú)符號(hào)數(shù)在前面加零擴(kuò)展,數(shù)值不變;有符號(hào)數(shù)前面進(jìn)行符號(hào)擴(kuò)展,位數(shù)加長(zhǎng)一位、數(shù)值增加一倍。錯(cuò),符號(hào)擴(kuò)展也不改變數(shù)值大?。?)CMP 指令是目的操作數(shù)減去源操作數(shù),與SUB指令功能相同錯(cuò)(9)邏輯運(yùn)算沒有進(jìn)位或溢出問題,
4、此時(shí)CF和OF沒有作用,所以邏輯運(yùn)算指令將CF和OF設(shè)置為0錯(cuò)(10)SHL指令左移一位,就是乘10。錯(cuò),左移一位,相當(dāng)于乘2。這里的位是二進(jìn)制比特位3.3 填空題(1)指令“PUSH DS”執(zhí)行后,ESP會(huì) _. 減 2 (2)指令“POP EDX”的功能也可以用MOV和ADD指令實(shí)現(xiàn),依次應(yīng)該是_和_指令。MOV EDX,ESP,ADD ESP,4(3)例子3-3 的TAB定義如果是1234567890,則顯示結(jié)果是 _78894111(4)進(jìn)行8位二進(jìn)制數(shù)加法:BAH6CH,8位結(jié)果是_,標(biāo)志PF_。如果進(jìn)行16位二進(jìn)制數(shù)加法:45BAH786CH,16位結(jié)果是_,標(biāo)志PF_。26H,0
5、,BE26H,0(5)已知AX98H,執(zhí)行“NEG AX”指令后,AX_,標(biāo)志SF_。68H,0(6)假設(shè)CL=98H,執(zhí)行“MOVZX DX,CL”后,DX = _,這稱為_。0098h,零位(7)假設(shè)CL=98H,執(zhí)行“MOVSX DX,CL”后,DX = _,這稱為_。ff98h,符號(hào)(8)指令“XOR EAX, EAX”和“SUB EAX, EAX”執(zhí)行后,EAX_,CFOF_。而指令“MOV EAX, 0”執(zhí)行后,EAX_,CF和OF沒有變化。0,0,0(9)例子3-9 的程序執(zhí)行結(jié)束后,變量qvar的內(nèi)容是_(10)欲將EDX內(nèi)的無(wú)符號(hào)數(shù)除以16,使用指令“SHR EDX, _”,
6、其中后一個(gè)操作數(shù)是一個(gè)立即數(shù)。4習(xí)題3.4請(qǐng)給每種組合各舉一個(gè)實(shí)例(1)mov reg, imm(2)mov mem, imm(3)mov reg, reg(4)mov mem, reg(5)mov seg, reg(6)mov reg, mem(7)mov seg, mem(8)mov reg, seg(9)mov mem, seg習(xí)題3.5操作數(shù)的組合通常符合邏輯,但是不能任意,指出下列指令的錯(cuò)誤原因(1) mov ecx,dl位數(shù)不同(2)mov eip,axeip為專用寄存器(3)mov es,1234h段寄存器不能直接用imm賦值(4)mov es,ds段寄存器間不能相互賦值(5)m
7、ov al,300h位數(shù)不同(6)mov esi,45h類型不明確(7)mov eax,ebx+edi無(wú)該種尋址方式(8) mov 20h,al立即數(shù)不能做操作數(shù)習(xí)題3.6使用MOV指令實(shí)現(xiàn)交換指令“XCHG EBX,EDI”功能。解答:mov eax,ebxmov ebx,edimov edi,eax習(xí)題3.7什么是堆棧,它的工作原則是什么,它的基本操作有哪兩個(gè),對(duì)應(yīng)指令是什么。主存儲(chǔ)器中的以“先進(jìn)后出”規(guī)則訪問的內(nèi)存區(qū),入棧、出棧,push ,pop習(xí)題3.11執(zhí)行如下程序片斷,說(shuō)明每條指令的執(zhí)行結(jié)果(1)mov eax,80hadd eax,3add eax,80hadc eax,3(2
8、)mov eax,100add ax,200(3)mov eax,100add al,200(包含256的進(jìn)位含義:25644300)(4)mov al,7fhsub al,8sub al,80hsbb al,3解答:(1)mov eax,80h;EAX80Hadd eax,3;EAX83H,CF0,SF0add eax,80h;EAX103H,CF0,OF0adc eax,3;EAX106H,CF0,ZF0(2)mov eax,100;EAX100(64H)add ax,200;EAX300(12CH),CF0(3)mov eax,100;EAX100(64H)add al,200;EAX4
9、4(2CH),CF1(包含256的進(jìn)位含義:25644300)(4)mov al,7fh;AL7FHsub al,8;AL77H,CF0,SF0sub al,80h;ALF7H,CF1,OF1sbb al,3;ALF3H,CF0,ZF0習(xí)題3.12給出下列各條指令執(zhí)行后al的值,以及CF、ZF、SF、OF和PF的狀態(tài)。Moval,89hAddal,alAddal,9dhCmpal,0bchSubal,alDecalIncal解答:Moval,89h;89h,不影響標(biāo)志位Addal,al;12h,cf=1,zf=0,sf=0,of=1,pf=1Addal,9dh;0afh,cf=0,zf=0,s
10、f=1,of=0,pf=1Cmpal,0bch;0afh,cf=1,zf=0,sf=1,of=0,pf=1Subal,al;0,cf=0,zf=1,sf=0,of=0,pf=1Decal;ffh,cf=0,zf=0,sf=1,of=0,pf=1Incal;0h,cf=0,zf=1,sf=0,of=0,pf=1習(xí)題3.13如下兩段程序執(zhí)行后,EDX.EAX寄存器對(duì)的值各是多少?(1)加法程序Movedx,11hMoveax,0b0000000hAddeax,040000000hAdcedx,0(2)減法程序Movedx,100hMoveax,64000000hSubeax,84000000hSb
11、bedx,0解答:(1)EDX=11EAX=0f0000000h(2)0ffh,0e00000000h習(xí)題3.14請(qǐng)分別用一條匯編語(yǔ)言指令完成如下功能:(1)把EBX寄存器和EDX寄存器的內(nèi)容相加,結(jié)果存入EDX寄存器。(2)用寄存器EBX和ESI的基址變址尋址方式把存儲(chǔ)器的一個(gè)字節(jié)與AL寄存器的內(nèi)容相加,并把結(jié)果送到AL中。(3)用EBX和位移量0B2H的寄存器相對(duì)尋址方式把存儲(chǔ)器中的一個(gè)雙字和ECX寄存器的內(nèi)容相加,并把結(jié)果送回存儲(chǔ)器中。(4)將32位變量VARD與數(shù)3412H相加,并把結(jié)果送回該存儲(chǔ)單元中。(5)把數(shù)0A0H與EAX寄存器的內(nèi)容相加,并把結(jié)果送回EAX中。解答:(1)把E
12、BX寄存器和EDX寄存器的內(nèi)容相加,結(jié)果存入EDX寄存器。add edx,ebx(2)用寄存器EBX和ESI的基址變址尋址方式把存儲(chǔ)器的一個(gè)字節(jié)與AL寄存器的內(nèi)容相加,并把結(jié)果送到AL中。add al,ebx+esi(3)用EBX和位移量0B2H的寄存器相對(duì)尋址方式把存儲(chǔ)器中的一個(gè)雙字和ECX寄存器的內(nèi)容相加,并把結(jié)果送回存儲(chǔ)器中。add bx+0b2h,cx(4)將32位變量VARD與數(shù)3412H相加,并把結(jié)果送回該存儲(chǔ)單元中。add varw,3412h(5)把數(shù)0A0H與EAX寄存器的內(nèi)容相加,并把結(jié)果送回EAX中。add eax,0a0h習(xí)題3.15有兩個(gè)64位無(wú)符號(hào)整數(shù)分別存放在變量
13、buffer1和buffer2中,定義數(shù)據(jù)并編寫代碼完成edx.eax<- buufer1 - buffer2的功能。解答:.dataBuffer1 qword?Buffer2qword?.codeMoveax,dword ptr buffer1Movedx,dword ptr buffer2 + 4Addeax,dword ptr buffer2Adcedx,dword ptr buffer2 + 4習(xí)題3.16執(zhí)行如下程序片斷,說(shuō)明每條指令的執(zhí)行結(jié)果(1)mov esi,10011100b;ESI _Hand esi,80h;ESI _Hor esi,7fh;ESI _Hxor es
14、i,0feh;ESI _H(2)mov eax,1010b;EAX _B(可有前導(dǎo)0)shr eax,2;EAX _B,CF_shl eax,1;EAX _B,CF_and eax,3;EAX _B,CF_(3)mov eax,1011b;EAX _B(可有前導(dǎo)0)rol eax,2;EAX _B,CF_rcr eax,1;EAX _B,CF_or eax,3;EAX _B,CF_(4)xor eax,eax;EAX_,CF_,OF_;ZF_,SF_,PF_解答:(1)mov esi,10011100b;ESI 9CHand esi,80h;ESI 80Hor esi,7fh;ESI FFHx
15、or esi,0feh;ESI 01H(2)mov eax,1010b;EAX 1010B(可有前導(dǎo)0)shr eax,2;EAX 0010B,CF1shl eax,1;EAX 0100B,CF0and eax,3;EAX 0000B,CF0(3)mov eax,1011b;EAX 1011B(可有前導(dǎo)0)rol eax,2;EAX 101100B,CF0rcr eax,1;EAX 10110B,CF0or eax,3;EAX 10111B,CF0(4)xor eax,eax;EAX0,CF0,OF0;ZF1,SF0,PF1習(xí)題3.17給出下列各條指令執(zhí)行后ax的結(jié)果,以及狀態(tài)標(biāo)志CF、OF、
16、SF、ZF、PF的狀態(tài)。Movax,1470hAndax,axOrax,axXorax,axNotaxTestax,0f0f0h解答:Ax=1470h flags 不變Ax=1470hcf=of=0 sf=0 zf=0 pf=0Ax=1470h cf=of=0 sf=0 zf=0 pf=0Ax=0 cf=of=0 sf=0 zf=1 pf=1Ax=ffffh flags 不變Ax=ffffh cf=of=0 sf=1 zf=0 pf=1習(xí)題3.18舉例說(shuō)明邏輯運(yùn)算指令怎樣實(shí)現(xiàn)復(fù)位、置位和求反功能。解答:復(fù)位 使用邏輯與指令and ,例如將al寄存器 D0位復(fù)位,指令 and al,0feh置位
17、 使用邏輯或指令or ,例如將al寄存器 D0位置位,指令 or al,01求反 使用not指令,例如將ebx寄存器內(nèi)容求反,指令not ebx習(xí)題3.19編程將一個(gè)壓縮BCD碼變量(如92h)轉(zhuǎn)換為對(duì)應(yīng)的ASCII碼,然后調(diào)用dispc字程序(在輸入輸出字程序中)顯示。解答:.dataBcd1byte92hMoval,bcd1Shral,4Oral,30hCalldispcMoval,bcd1Andal,0fhOral,30hCalldispc習(xí)題3.20有4個(gè)32位有符號(hào)數(shù),分別保存在var1,var2,var3,var4變量中,閱讀如下程序片段,得出運(yùn)算公式,并說(shuō)明運(yùn)算結(jié)果存于何處。Mo
18、veax,var1Imulvar2Movebx,var3Movecx,ebxSarecx,32Addeax,ebxAdcedx,ecxSubeax,540Sbbedx,0Idivvar4解答:(var1*var2)+var3-540)/var4,結(jié)果存于edx,eax中習(xí)題3.21如下程序片段實(shí)現(xiàn)EAX乘以某個(gè)數(shù)X的功能,請(qǐng)判斷X?請(qǐng)使用一條乘法指令實(shí)現(xiàn)上述功能。mov ecx, eaxshl eax, 3lea eax, eax+eax*8sub eax, ecx解答:8*8+8-171imul eax, 71習(xí)題3.22 請(qǐng)使用移位和加減法指令編寫一個(gè)程序片段計(jì)算:EAX×21,
19、假設(shè)乘積不超過(guò)32位。提示:21242220。解答:mov ebx,eax;EBXEAX×20shl ebx,2;EBXEAX×22add eax,ebx;EAXEAX×(2220)shl ebx,2;EBXEAX×24add eax,ebx;EAXEAX×(242220)習(xí)題3.23閱讀如下程序,為每條指令添加注釋,指出其功能或作用,并說(shuō)明這個(gè)程序運(yùn)行后顯示的結(jié)果。如果將程序中的寄存器間接尋址替換為寄存器相對(duì)尋址,如何修改程序?.data Num byte 6,7,7,8,3,0,0,0Tab byte 67783000.codeMovecx
20、,lengthof num;Movesi,offset num;Movedi,offset tab;Again:Moval,esi;Xchgal,edi;Movesi,al;CalldispcAddesi,1;Addedi,1;Loopagain解答:.data Num byte 6,7,7,8,3,0,0,0Tab byte 67783000.codeMovecx,lengthof num;ecx賦值為num數(shù)組長(zhǎng)度Movesi,offset num;esi賦值為num偏移地址Movedi,offset tab;edi賦值為tab字符串偏移地址Again:Moval,esi;讀取num元素到a1Xchgal,edi;互換al與tab元素Movesi,al;al存入num數(shù)組相應(yīng)單元CalldispcAddesi,1;指向num下一元素Addedi,1;指向下一字符Loopagain結(jié)果:67783000修改程序:Movecx,lengthof numXoresi,es
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年米面機(jī)械休閑設(shè)備項(xiàng)目建議書
- 2024年河北邯鄲市惠民房地產(chǎn)開發(fā)有限公司招聘專業(yè)技術(shù)人才15名筆試參考題庫(kù)附帶答案詳解
- 2024年景德鎮(zhèn)市昌鼎人力資源有限公司公開招聘筆試參考題庫(kù)附帶答案詳解
- 2025年高性能氣敏傳感器項(xiàng)目合作計(jì)劃書
- 2025年廣東建設(shè)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)完整版
- 第十四課《凱撒密碼》教學(xué)設(shè)計(jì) 2023-2024學(xué)年新世紀(jì)版(2018)初中信息技術(shù)八年級(jí)上冊(cè)
- 粵教版高中信息技術(shù)選修1教學(xué)設(shè)計(jì)-2.4.1 For循環(huán)語(yǔ)句
- 第18課 東晉南朝時(shí)期江南地區(qū)的開發(fā)(教學(xué)設(shè)計(jì))2023-2024學(xué)年七年級(jí)歷史上冊(cè)同步備課系列(部編版)
- 2025年河北軌道運(yùn)輸職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)審定版
- 2023-2024學(xué)年人教版高中信息技術(shù)必修一第三章第三節(jié)《數(shù)據(jù)分析與可視化》教學(xué)設(shè)計(jì)
- 研學(xué)旅行課程標(biāo)準(zhǔn)(一)-前言、課程性質(zhì)與定位、課程基本理念、課程目標(biāo)
- 部編版二年級(jí)下冊(cè)語(yǔ)文教案全冊(cè)
- 解放牌汽車CA10B后鋼板彈簧吊耳加工工藝及夾具設(shè)計(jì)哈
- 大學(xué)??啤稒C(jī)電傳動(dòng)控制》課件
- 高中地理高清區(qū)域地理填圖冊(cè)
- 品管圈QCC質(zhì)量持續(xù)改進(jìn)案例手術(shù)室-優(yōu)化手術(shù)病理標(biāo)本處置流程PDCA
- 培根鑄魂征文800字
- 基于核心素養(yǎng)的學(xué)習(xí)觀和教學(xué)觀
- 感染性腹瀉及其防控措施
- 第二篇-安全操作規(guī)程
- 罪犯教育學(xué)課程
評(píng)論
0/150
提交評(píng)論