![《匯編語言與接口技術(shù)》習(xí)題解答(第三章)_第1頁](http://file4.renrendoc.com/view/b225de73a18c5bd8b25dcd0e3351e333/b225de73a18c5bd8b25dcd0e3351e3331.gif)
![《匯編語言與接口技術(shù)》習(xí)題解答(第三章)_第2頁](http://file4.renrendoc.com/view/b225de73a18c5bd8b25dcd0e3351e333/b225de73a18c5bd8b25dcd0e3351e3332.gif)
![《匯編語言與接口技術(shù)》習(xí)題解答(第三章)_第3頁](http://file4.renrendoc.com/view/b225de73a18c5bd8b25dcd0e3351e333/b225de73a18c5bd8b25dcd0e3351e3333.gif)
![《匯編語言與接口技術(shù)》習(xí)題解答(第三章)_第4頁](http://file4.renrendoc.com/view/b225de73a18c5bd8b25dcd0e3351e333/b225de73a18c5bd8b25dcd0e3351e3334.gif)
![《匯編語言與接口技術(shù)》習(xí)題解答(第三章)_第5頁](http://file4.renrendoc.com/view/b225de73a18c5bd8b25dcd0e3351e333/b225de73a18c5bd8b25dcd0e3351e3335.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 習(xí)題3.10問題:.畫圖說明下列語句分配的存儲(chǔ)空間及初始化的數(shù)據(jù)值解答:()ABC1010hE,F(xiàn),-144441h42h43hOahlOh45h46hffh04h04h04h3個(gè)10h0FBhFFh10h56解:1;只允許輸入小寫字母2轉(zhuǎn)換為大寫字母;顯示8解:解: 解0:3.2編2制程序完成1等10個(gè)字節(jié)數(shù)據(jù)之和,并將結(jié)果存入字節(jié)變量中(不考慮溢出和進(jìn)位)。 # #;原始數(shù)據(jù);數(shù)據(jù)個(gè)數(shù);預(yù)留結(jié)果單元;位移量清零;取第一個(gè)數(shù);累加次數(shù);累加;指向下一個(gè)數(shù)a如未完,繼續(xù)累加,完了,存結(jié)果 #解0: 習(xí)題3.1解答:參考教材(第60頁)習(xí)題3.6問題:給出你采用一個(gè)源程序格式書寫的例題3.1源
2、程序解答:.modelsmall.stack.datastringdbHello,Assembly!,0dh,0ah,$.codestart:movax,datamovds,axmovdx,offsetstringmovah,9int21hmovax,4c00hint21hendstart習(xí)題3.12解答:ORG偽指令習(xí)題3.13解答:段地址和偏移地址屬性,類型屬性習(xí)題3.26問題:過程定義的一般格式是怎樣的?子程序開始為什么常有PUSH指令、返回前為什么常有POP指令?下面完成16位無符號(hào)數(shù)累加的子程序有什么不妥嗎?若有,請(qǐng)改正:解答:crazyPROC;crazyPROCpushax;xo
3、rax,ax;xorax,axxordx,dx;xordx,dxagain:addax,bx;again:addax,bxadcdx,0;adcdx,0incbx;incbxincbx;incbxloopagain;loopagainret;retENDPcrazy;crazyENDP字量求和子程序入口參數(shù):BX=數(shù)據(jù)首址。乂=數(shù)據(jù)個(gè)數(shù)出口參數(shù):人乂=和的低字。乂=和的高字(進(jìn)位部分)習(xí)題3.28問題:請(qǐng)按如下說明編寫子程序:;子程序功能:把用ASCII碼表示的兩位十進(jìn)制數(shù)轉(zhuǎn)換為對(duì)應(yīng)二進(jìn)制數(shù);入口參數(shù):DH=+位數(shù)的ASCII碼,DL=(位數(shù)的ASCII碼;出口參數(shù):人1=對(duì)應(yīng)的二進(jìn)制數(shù)解答:
4、asctobprocpushcx;先轉(zhuǎn)換十位數(shù)anddh,0fhshldh,1;乘以10movch,dhshldh,1shldh,1adddh,ch;轉(zhuǎn)換個(gè)位數(shù)anddl,0fh;十位數(shù)加個(gè)位數(shù)adddh,dl;設(shè)置出口參數(shù)moval,dhpopcxretasctobendp習(xí)題3.341問題:編寫一個(gè)計(jì)算字節(jié)校驗(yàn)和的子程序。所謂“校驗(yàn)和”是指不記進(jìn)位的累加,常用于檢查信息的正確性。主程序提供入口參數(shù),有數(shù)據(jù)個(gè)數(shù)和數(shù)據(jù)緩沖區(qū)的首地址。子程序回送求和結(jié)果這個(gè)出口參數(shù)。傳遞參數(shù)方法自定。解答:;數(shù)據(jù)段arraydb12h,25h,0f0h,0a3h,3,68h,71h,0cah,0ffh,90hc
5、ountequ$-array;數(shù)組元素個(gè)數(shù)resultdb?;校驗(yàn)和;代碼段(主程序)movbx,offsetarray;BX數(shù)組的偏移地址movcx,count;CX數(shù)組的元素個(gè)數(shù)callchecksum;調(diào)用求和過程movresult,al;處理出口參數(shù)習(xí)題3.342;代碼段(子程序);計(jì)算字節(jié)校驗(yàn)和的通用過程;入口參數(shù):DS:BX=數(shù)組的段地址:偏移地址。乂=元素個(gè)數(shù);出口參數(shù):AL=校驗(yàn)和;說明:除AX/BX/CX外,不影響其他寄存器checksumprocxoral,al;累加器清0sum:addal,bx;求和incbx;指向下一個(gè)字節(jié)loopsumretchecksumendp習(xí)
6、題3.17已知用于LED數(shù)碼管的顯示代碼表為:LEDtabledb0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8hdb80h,90h,88h,83h,0c6h,0c1h,86h,8eh它依次表示09、AF這16個(gè)數(shù)碼的顯示代碼?,F(xiàn)編寫一個(gè)程序?qū)崿F(xiàn)將lednum中的一個(gè)數(shù)字(09、AF)轉(zhuǎn)換成對(duì)應(yīng)的LED顯示代碼。解答;數(shù)據(jù)段LEDtabledb0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8hdb80h,90h,88h,83h,0c6h,0clh,86h,8ehlednumdb0ah;代碼段movbx,offsetLEDtablemoval,led
7、numxlat;al中存有對(duì)應(yīng)的LED顯示代碼習(xí)題3.21例題3.7中,如果要實(shí)現(xiàn)所有為1的位都順序執(zhí)行相應(yīng)的處理程序段(而不是例題中僅執(zhí)行最低為1位的處理程序段),請(qǐng)寫出修改后的代碼段。解答;代碼段moval,numbermovbx,0;BX記錄為1的位數(shù)restart:cmpal,0;AL=0結(jié)束jzdoneagain:shral,1;最低位右移進(jìn)入CFjcnext;為1,轉(zhuǎn)移incbx;不為1,繼續(xù)jmpagainnext:pushaxpushbxshlbx,1;位數(shù)乘以2(偏移地址要用2個(gè)字節(jié)單元)jmpaddrsbx;間接轉(zhuǎn)移:IPtabIe+BX;以下是各個(gè)處理程序段fun0:mo
8、vdl,0jmpdispfun1:movdl,1jmpdispfun2:movdl,2jmpdispfun3:movdl,3jmpdispfun4:movdl,4jmpdispfun5:movdl,5jmpdispfun6:movdl,6jmpdispfun7:movdl,7jmpdispdisp:movah,2;顯示一個(gè)字符int21hpopbxpopaxjmprestartdone:習(xí)題3.24編寫計(jì)算100個(gè)正整數(shù)之和的程序。如果和不超過16位字的范圍(65535),則保存其和到wordsum,如超過則顯示Overflow!。解答;數(shù)據(jù)段countequ100parraydwcountd
9、up(?);假設(shè)有100個(gè)數(shù)據(jù)wordsumdw0msgdboverflow,$;代碼段movcx,countmovax,0movbx,offsetparrayagain:addax,bxjncnextmovdx,offsetmsgmovah,9int21h;顯示溢出信息jmpdone;然后,跳出循環(huán)體next:addbx,2loopagainmovwordsum,axdone:習(xí)題3.25編程把一個(gè)16位無符號(hào)二進(jìn)制數(shù)轉(zhuǎn)換成為用8421BCD碼表示的5位十進(jìn)制數(shù)。轉(zhuǎn)換算法可以是:用二進(jìn)制數(shù)除以10000,商為“萬位”,再用余數(shù)除以1000,得到“千位”;依次用余數(shù)除以100、10和1,得到“
10、百位”、“十位”和“個(gè)位”。解答;wjxt325.asm.modelsmall.stack256.dataarraydbcddw?;源字?jǐn)?shù)據(jù)db5dup(?);五位bcd結(jié)果,高對(duì)高低對(duì)低.code.startupmovdx,array;取源數(shù)據(jù)(余數(shù))movbx,10000;除數(shù)movcx,10;除數(shù)系數(shù)movsi,4;目的數(shù)據(jù)高位位移量again:movax,dx;dx.ax中存放被除數(shù)movdx,0divbx;除于bx,商ax,余數(shù)dxmovdbcdsi,al;商V10,存結(jié)果pushdx;暫存余數(shù)movax,bx;除數(shù)除于10movdx,0divcx;dx.ax除于ex,商ax、余數(shù)0
11、存在dxmovbx,ax;bx是除數(shù)popdxdecsi;目的數(shù)據(jù)位移量減1jnzagainmovdbcd,dl;存?zhèn)€位數(shù)(10).exit0end習(xí)題3.27編寫一個(gè)源程序,在鍵盤上按一個(gè)鍵,將從AL返回的ASCII碼值顯示出來,如果按下ESC鍵則程序退出。請(qǐng)調(diào)用書中的HTOASC子程序。解答again:movah,1int21hcmpal,1bh;ESC的ASCII碼是1bhjedonecallhtoascmovah,2int21hjmpagaindone:習(xí)題3.29調(diào)用HTOASC子程序,編寫顯示一個(gè)字節(jié)的16進(jìn)制數(shù)、后跟“H”的子程序。解答DIPASCproc;入口參數(shù):AL=要顯示
12、的一個(gè)16進(jìn)制數(shù)pushcxpushdxpushaxmovcl,4;轉(zhuǎn)換高位shral,clcallHTOASCmovdl,al;顯示movah,2int21hpopax;轉(zhuǎn)換低位callHTOASCmovdl,al;顯示movah,2int21hmovdl,H;顯示一個(gè)字母“H”movah,2int21hpopdxpopcxretDIPASCendpHTOASCproc;將AL低4位表達(dá)的一位16進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼andal,0fhcmpal,9jbehtoasc1addal,37h;是0AH0FH,力口37H轉(zhuǎn)換為ASCII碼ret;子程序返回htoascl:addal,30h;是0
13、9,加30H轉(zhuǎn)換為ASCII碼ret;子程序返回HTOASCendp習(xí)題3.35編制3個(gè)子程序把一個(gè)16位二進(jìn)制數(shù)用4位16進(jìn)制形式在屏幕上顯示出來,分別運(yùn)用如下3種參數(shù)傳遞方法,并配合3個(gè)主程序驗(yàn)證它。采用AX寄存器傳遞這個(gè)16位二進(jìn)制數(shù)采用temp變量傳遞這個(gè)16位二進(jìn)制數(shù)采用堆棧方法傳遞這個(gè)16位二進(jìn)制數(shù)解答.modelsmall.stack.datawdatadw34abh.code.startupmovax,wdatacalldispa.exit0dispaprocpushcxpushdxmovcl,4movdl,ahshrdl,clcalldldispmovdl,ahanddl,0
14、fhcalldldispmovdl,alshrdl,clcalldldispmovdl,alanddl,0fhcalldldisppopdxpopcxretdispaendpdldispprocpushaxordl,30hcmpdl,39hjbedldisp1adddl,7dldisp1:movah,2int21hpopaxretdldispendpend.modelsmall.stack.datawdatadw34abhwordtempdw?.code.startupmovax,wdatamovwordtemp,axcalldispa.exit0dispaprocpushcxpushdxmo
15、vcl,4movdl,byteptrwordtemp+1shrdl,clcalldldispmovdl,byteptrwordtemp+1anddl,0fhcalldldispmovdl,byteptrwordtempshrdl,clcalldldispmovdl,byteptrwordtempanddl,0fhcalldldisppopdxpopcxretdispaendpdldispprocpushaxordl,30hcmpdl,39hjbedldisp1adddl,7dldisp1:movah,2int21hpopaxretdldispendpend.modelsmall.stack.datawdatadw34abh.code.startuppushwdatacalldispapopax;addsp,2.exit0dispaprocpushbpmovbp,sppushaxpushcxpushdxmovax
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 好家長期刊發(fā)表有哪些要求
- 大學(xué)生負(fù)債創(chuàng)業(yè)項(xiàng)目怎么辦
- 2024-2025人教版初中七下數(shù)學(xué)湖北專版12.2.2第1課時(shí)-畫頻數(shù)分布直方圖【課件】
- 大學(xué)生創(chuàng)業(yè)項(xiàng)目的分工
- 小學(xué)四年級(jí)數(shù)學(xué)三位數(shù)除以兩位數(shù)單元考核訓(xùn)練題大全附答案
- 小學(xué)三年級(jí)數(shù)學(xué)五千以內(nèi)加減法競賽檢測模擬題大全附答案
- 中國移動(dòng)安全運(yùn)維崗位工資
- 臨安大學(xué)生創(chuàng)業(yè)項(xiàng)目
- 游戲化學(xué)習(xí)的力量
- 生活困難救助申請(qǐng)書
- 人教版高中數(shù)學(xué)選擇性必修二導(dǎo)學(xué)案
- 昆明天大礦業(yè)有限公司尋甸縣金源磷礦老廠箐-小凹子礦段(擬設(shè))采礦權(quán)出讓收益評(píng)估報(bào)告
- 心有榜樣行有力量 -從冬奧冠軍徐夢桃身上感受青春奮斗初中主題班會(huì)
- GB/T 3860-1995文獻(xiàn)敘詞標(biāo)引規(guī)則
- 七年級(jí)英語下冊(cè)閱讀理解10篇
- 設(shè)計(jì)質(zhì)量、進(jìn)度保證措施
- 醫(yī)院評(píng)審工作臨床科室資料盒目錄(15個(gè)盒子)
- Unit2 School life - 復(fù)習(xí)課課件 牛津譯林版英語八年級(jí)上冊(cè)
- 中醫(yī)腰痛病個(gè)案護(hù)理
- 大學(xué)學(xué)院學(xué)生心理危機(jī)預(yù)防與干預(yù)工作預(yù)案
- 三級(jí)安全管理標(biāo)準(zhǔn)化評(píng)定標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論