付費下載
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、匯編語言程序設計第四版【課后習題答案】-圖蕾懸植第3xx匯編語言程序格式習題偽指令語句與硬指令語句的本質(zhì)區(qū)別是什么偽指令有什么主要作用解答偽指令語句與硬指令語句的本質(zhì)區(qū)別是能不能產(chǎn)生CPU動作;偽指令的作用是完成對如存儲模式、主存變量、子程序、宏及段定義等很多不產(chǎn)生CPU動作的說明,并在程序執(zhí)行前由匯編程序完成處理。習題什么是標識符,匯編程序中標識符怎樣組成解答為了某種需要,每種程序語言都規(guī)定了在程序里如何描述名字,程序語言的名字通常被稱為標識符;匯編語言中的標識符一般最多由31 個字母、數(shù)字及規(guī)定的特殊符號(如-,)組成,不能以數(shù)字開頭。習題什么是保留字,匯編語言的保留字有哪些類型,并舉例說
2、明。解答保留字是在每種語言中規(guī)定了有特殊意義和功能的不允許再做其它用處的字符串;匯編語言的保留字主要有硬指令助記、偽指令助記符、運算符、寄存器名以及預定義符號等。匯編語言對大小寫不敏感。如定義字節(jié)數(shù)和字符串的 DB就是偽指令助記符。習題匯編語句有哪兩種,每個語句由哪4 個部分組成解答匯編語句有執(zhí)行性語句和說明性語句;執(zhí)行性語句由標號、硬指令助記符、操作數(shù)和注釋四部分組成;說明性語句由名字、偽指令助記符、參數(shù)和注釋四部分組成習題匯編語言程序的開發(fā)有哪4 個步驟,分別利用什么程序完成、產(chǎn)生什么輸出文件。解答1 .編輯文本編輯程序匯編語言源程序.asm2 .匯編匯編程序目標模塊文件.obj3 .連接
3、連接程序可執(zhí)行文件.exe或4.調(diào)試調(diào)試程序應用程序習題區(qū)分下列概念:( 1)變量和標號( 2)數(shù)值表達式和地址表達式( 3)符號常量和字符串常量解答( 1)變量是在程序運行過程中,其值可以被改變的量;標號是由用戶自定 義的標識符,指向存儲單元,表示其存儲內(nèi)容的邏輯地址。( 2)數(shù)值表達式一般是由運算符連接的各種常數(shù)所構成的表達式,地址表達式是由名字、標號以及利用各種的操作符形成的表達式。( 3)在程序中,為了使常量更便于使用和閱讀,經(jīng)常將一些常量用常量定義語句定義為符號常量,被一對雙引號括起來的若干個字符組成的字符序列被稱為字符串常量。( 習題假設myword 是一個字變量,mybyte1
4、和 mybyte2 是兩個字節(jié)變量,指出下列語句中的錯誤原因。1) mov byte ptr bx,1000( 2) mov bx,offset mywordsi( 3) cmp mybyte1,mybyte2( 4) mov al,mybyte1+mybyte2( 5) sub al,myword( 6) jnz myword解答( 1) 1000超出了一個字節(jié)范圍( 2)寄存器的值只有程序執(zhí)行時才能確定,而offset 是匯編過程計算的偏移地址,故無法確定,改為lea bx,mywordsi( 3)兩個都是存儲單元,指令不允許( 4)變量值只有執(zhí)行時才確定,匯編過程不能計算(5)字節(jié)量AL
5、與字量myword ,類型不匹配(6) Jcc指令只有相對尋址方式,不支持間接尋址方式習題OPR1是一個常量,問下列語句中兩個 AND操作有什么區(qū)別AND AL,OPR1 AND 0feh解答前者為 “與 ”操作硬指令助記符,可匯編成機器代碼。后者為邏輯運算符,在匯編時進行“與 ”運算,產(chǎn)生具體數(shù)值。習題給出下列語句中,指令立即數(shù)(數(shù)值表達式)的值:( 1) mov al,23h AND 45h OR 67h( 2) mov ax,1234h/16+10h( 3) mov ax,NOT(65535 XOR 1234h)( 4) mov al,LOW 1234h OR HIGH 5678h( 5
6、) mov ax,23h SHL 4( 6) mov ax,1234h SHR 6( 7) mov al, a AND (NO- T(A a)( 8) mov al, H OR 00100000b( 9) mov ax,(76543 LT 32768) XOR 7654h解答注:對于邏輯運算,有關操作數(shù)可化為二進制數(shù)。(1) 67h(2) 133h(3) 1234h(4) 76h(5) 0234h(6) 0048h(7) 41h(8) 68h(9) 7654h習題畫圖說明下列語句分配的存儲空間及初始化的數(shù)據(jù)值:(1) byte_var DB ABC,10,10h, E-F1,3,3DUP(4)
7、(2) word_var DW 10h,-5, EF ,3 DUP()11 / 16解答( 1)從低地址開始,依次是(十六進制表達):4142430a104546ff 04040404ff 0404040404ff(2)從低地址開始,依次是(十六進制表達):1000FBFF4645習題請設置一個數(shù)據(jù)段 mydataseg,按照如下要求定義變量:( 1) my1b 為字符串變量:Personal Computer( 2) my2b 為用十進制數(shù)表示的字節(jié)變量:20( 3) my3b 為用十六進制數(shù)表示的字節(jié)變量:20( 4) my4b 為用二進制數(shù)表示的字節(jié)變量:20( 5) my5w 為 20
8、 個未賦值的字變量( 6) my6c為100的常量( 7) my7c 表示字符串:Personal Computer解答mydataseg segmentmy1bdb Personal Computer my2bdb 20my3bdb 14h;20hmy4bdb 00010100bmy5wdw 20 dup()my6cequ 100;my6c = 100my7cequ mydataseg ends習題分析例題的數(shù)據(jù)段,并上機觀察數(shù)據(jù)的存儲形式。解答以字節(jié)為單位從低地址向高地址依次是:160012FFHFFHFFHFFH00000000000000001234545H23H00000000000
9、00000a b c Hel l o1310 $12個字符串month每個字符串從低地址到高地址依次是:m o n t 25 X 4個字節(jié)未定義初值的存儲單元,操作系統(tǒng)設置為0習題修改例題,現(xiàn)在用字定義偽指令dw、字串傳送指令movsw和字符串顯示9 號功能調(diào)用實現(xiàn)。解答.model small.stack.datasourcedw 3433h,3635htargetdw 40 dup(),$.code.startupmov ax,dsmov es,axcldmov si,offset sourcemov di,offset targetmov cx,40rep movswmov si,0mo
10、v dx,offset targetmov ah,9int 21h.exit 0end習題變量和標號有什么屬性解答段地址:表示變量和標號所在代碼段的段地址;偏移地址:表示變量和標號所在代碼段的段內(nèi)偏移地址;類型:引用變量時,表示是字節(jié)、字、雙字等數(shù)據(jù)量。引用該標號時,表示它所在同一個段一一near類型,還是另外一個段 一一far類型。習題設在某個程序中有如下片段,請寫出每條傳送指令執(zhí)行后寄存器AX的內(nèi)容:mydatasegmentORG 100HVARWDW 1234H,5678HVARBDB 3,4ALIGN 4VARDDD HEVENBUFFDB 10 DUP()MESSDB HELLOB
11、EGIN:MOV AX,OFFSET MESSMOV AX,TYPE BUFF+TYPE MESS+TYPE VARDMOV AX,SIZEOF VARW+SIZEOF BUFF+SIZEOF MESSMOV AX,LENGTHOF VARW+LENGTHOF VARDMOV AX,LENGTHOF BUFF+SIZEOF VARWMOV AX,TYPE BEGINMOV AX, OFFSET BEGIN解答MOVAX,OFFSETMES SAX= 116HMOVAX,TYPEBUFF+TYPEMESS+TYPE;VAARXD=1+1+4= 06HMOV AX, SIZEOF VARW+SIZ
12、EOF BUFF+SIZEOF ;MEASXS= 4+10+5 =19 = 13HMOVAX,LENGTHOFVARW+LENGTHOFV;ARADX=2+1 = 03HMOV AX,LENGTHOF BUFF + SIZEOF VA; RAWX = 10+4 =14 = 0EH(近)BEGIN1BHMOVAX,TYPEBIG;INAX=FF02HMOV; AX,OFFSETAX=習題利用簡化段定義格式,必須具有.MODEL語句。MASM定義了 哪7種存儲模式,TINY和SMALL模式創(chuàng)建什么類型(EXE COM)程序設計32 位程序應該采用什么模式解答MASM定義的7種存儲模式是TINY (
13、微型卞II式、SMALL (小型模式)、 COMPACT(緊湊模式)、MEDIUM (中型模式)、LARGE(大型模式)、HUGE (巨大模式)、FLAT(平展模式);TINY用于創(chuàng)建COM類型程序、一般程序都 可以選用SMALL模式;設計32位的程序應該采用FLAT模式。習題源程序中如何指明執(zhí)行的起始點源程序應該采用哪個DOS功能調(diào)用,實現(xiàn)程序返回DOS解答源程序中運用STARTU劭指令指明執(zhí)行的起始點;源程序應該采用DOS功能調(diào)用的4CH子功能實現(xiàn)程序返回DOS的。習題在SMALL存儲模式下,簡化段定義格式的代碼段、數(shù)據(jù)段和堆棧段的缺省段名、定位、組合以及類別屬性分別是什么解答段定義偽指令
14、xx定位組合類別組名.CODE_TEXTWORDPUBLICCODE.DATA_DATAWORDPUBLICDATADGROUP.DATA_BSSWORDPUBLICBSSDGROUP.STACKSTACKPARASTACKSTACKDGROUP如何用指令代碼代替.startup和.exit指令,使得例題能夠在 MASM下匯編通過解答;(文件名).model small.stack.datastringdb Hello,Everybody ! ,0dh,0ah. $.codestart:mov ax ,datamov ds,axmov dx,offset stringmov ah,9int 2
15、1hmov ax ,4c00hint 21hend start習題創(chuàng)建一個COM 程序完成例題的功能。解答; lt301a,asm.model tiny.code.startupmov dx,offset stringmov ah,9int 21h.exit 0stringdb Hello,Everybody!0dh,0ah,$;end習題按下面要求寫一個簡化段定義格式的源程序(1)定義常量num,其值為5;數(shù)據(jù)段中定義字數(shù)組變量 datalist,它的頭 5 個字單元中依次存放-1、 0、 2、 5 和 4,最后 1 個單元初值不定;( 2)代碼段中的程序?qū)atalist 中頭 num 個
16、數(shù)的累加和存入datalist 的最后 1 個字單元中。解答.model small.stack.datanumequ 5datalistdw -1,0,2,5,4,.code.startupmov bx,offset datalistmov cx,numxor ax,axagain:add ax,bxinc bxinc bxloop againmov bx,ax.exit 0end習題按下面要求寫一個完整段定義格式的源程序( 1)數(shù)據(jù)段從雙字邊界開始,其中定義一個100 字節(jié)的數(shù)組,同時該段還作為附加段;(2)堆棧段從節(jié)邊界開始,組合類型為stack;(3)代碼段的類別是code指定段寄存器
17、對應的邏輯段;主程序指定從 100h 開始,給有關段寄存器賦初值;將數(shù)組元素全部設置為64h。解答stacksegment para stack dw512 dup()stackendsdatasegmentarraydb 100 dup()dataendscodesegment code assume cs:code,ds:data,es:data,ss:stackorg 100hstart:mov ax,datamov ds,axmov es,axmov di,offset arraymov al,64hmov cx,100cldrep stosbmov ax,4c00hint 21hco
18、deendsend start習題編制程序完成兩個已知雙精度數(shù)(4字節(jié))A和B相加并將結(jié)果存 入雙精度變量單元SUM中(不考慮溢出)。解答.modelsmall.stack256;定義堆棧段大小為256個字節(jié).dataAddh;定義兩個雙字的數(shù)(隨意)Bddhsumdd;定義結(jié)果,執(zhí)行后為:h.code.startupxorsi, si;相對于變量白位移量清零 movcx, 2;分高低字分別相加,共兩次 clc;清零cfagain:mov ax, word ptr Asi;取第一個數(shù)的一個字(先低字后高字)adc ax,word ptr Bsi;取第二個數(shù)的一個字(先低字后高字)mov word ptr sumsi, ax;存和的一個字(先低字后高字)inc si;修改位移量指向下一個字(加2)inc siloopagain; cx=cx-1 ,if cx
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年會計核算與財務管理制度指南
- 建筑工地安全施工腳手架方案
- 2026年AR增強現(xiàn)實零售報告及未來五至十年沉浸式購物報告
- 土建檢修施工方案(3篇)
- 洋河酒廠施工方案(3篇)
- ppp移交應急預案(3篇)
- 書法團建活動策劃方案(3篇)
- 主業(yè)裝修施工方案(3篇)
- 漢服銷售活動方案策劃(3篇)
- 跨境電商數(shù)字內(nèi)容創(chuàng)作平臺項目2025年創(chuàng)新營銷模式可行性研究報告
- 電廠調(diào)試安全教育培訓課件
- 煉銅廠安全知識培訓課件
- 眼鏡驗光師試題(及答案)
- 2025年江西公務員考試(財經(jīng)管理)測試題及答案
- 植筋工程施工驗收記錄表范例
- 衛(wèi)生院孕優(yōu)知識培訓課件
- 2025年重慶高考高職分類考試中職語文試卷真題(含答案詳解)
- 電商預算表格財務模板全年計劃表格-做賬實操
- 委托付款管理辦法
- 煤礦后勤管理辦法
- 《英耀篇》全文文檔
評論
0/150
提交評論