匯編語(yǔ)言程序設(shè)計(jì)(第四版)第3章【課后答案】【精選文檔】_第1頁(yè)
匯編語(yǔ)言程序設(shè)計(jì)(第四版)第3章【課后答案】【精選文檔】_第2頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、匯編語(yǔ)言程序設(shè)計(jì)(第四版)第3章【課后答案】【精選文檔】 匯編語(yǔ)言程序設(shè)計(jì) 第四版 【課后習(xí)題答案】 -囮裑為檤 第3章 匯編語(yǔ)言程序格式習(xí)題3。1偽指令語(yǔ)句與硬指令語(yǔ)句的本質(zhì)區(qū)別是什么?偽指令有什么主要作用? 解答偽指令語(yǔ)句與硬指令語(yǔ)句的本質(zhì)區(qū)別是能不能產(chǎn)生CPU動(dòng)作;偽指令的作用是完成對(duì)如存儲(chǔ)模式、主存變量、子程序、宏及段定義等很多不產(chǎn)生CPU動(dòng)作的說(shuō)明,并在程序執(zhí)行前由匯編程序完成處理.習(xí)題3。2什么是標(biāo)識(shí)符,匯編程序中標(biāo)識(shí)符怎樣組成? 解答為了某種需要,每種程序語(yǔ)言都規(guī)定了在程序里如何描述名字,程序語(yǔ)言的名字通常被稱(chēng)為標(biāo)識(shí)符;匯編語(yǔ)言中的標(biāo)識(shí)符一般最多由31個(gè)字母、數(shù)字及規(guī)定的特殊符號(hào)

2、(如-,?,)組成,不能以數(shù)字開(kāi)頭。習(xí)題3。3  什么是保留字,匯編語(yǔ)言的保留字有哪些類(lèi)型,并舉例說(shuō)明。 解答保留字是在每種語(yǔ)言中規(guī)定了有特殊意義和功能的不允許再做其它用處的字符串;匯編語(yǔ)言的保留字主要有硬指令助記、偽指令助記符、運(yùn)算符、寄存器名以及預(yù)定義符號(hào)等。匯編語(yǔ)言對(duì)大小寫(xiě)不敏感.如定義字節(jié)數(shù)和字符串的DB就是偽指令助記符。習(xí)題3.4匯編語(yǔ)句有哪兩種,每個(gè)語(yǔ)句由哪4個(gè)部分組成? 解答匯編語(yǔ)句有執(zhí)行性語(yǔ)句和說(shuō)明性語(yǔ)句;執(zhí)行性語(yǔ)句由標(biāo)號(hào)、硬指令助記符、操作數(shù)和注釋四部分組成;說(shuō)明性語(yǔ)句由名字、偽指令助記符、參數(shù)和注釋四部分組成習(xí)題3.5匯編語(yǔ)言程序的開(kāi)發(fā)有哪4個(gè)步驟,分別利用什么程

3、序完成、產(chǎn)生什么輸出文件。 解答  編輯          文本編輯程序      匯編語(yǔ)言源程序.asm  匯編          匯編程序             目標(biāo)模塊文件.obj  連接      &

4、#160;   連接程序             可執(zhí)行文件。exe或.com  調(diào)試          調(diào)試程序              應(yīng)用程序習(xí)題3。6區(qū)分下列概念: (1)變量和標(biāo)號(hào)(2)數(shù)值表達(dá)式和地址表達(dá)式(3)符號(hào)常量和字符串常量解答(1)變量

5、是在程序運(yùn)行過(guò)程中,其值可以被改變的量;標(biāo)號(hào)是由用戶(hù)自定義的標(biāo)識(shí)符,指向存儲(chǔ)單元,表示其存儲(chǔ)內(nèi)容的邏輯地址.(2)數(shù)值表達(dá)式一般是由運(yùn)算符連接的各種常數(shù)所構(gòu)成的表達(dá)式,地址表達(dá)式是由名字、標(biāo)號(hào)以及利用各種的操作符形成的表達(dá)式.(3)在程序中,為了使常量更便于使用和閱讀,經(jīng)常將一些常量用常量定義語(yǔ)句定義為符號(hào)常量,被一對(duì)雙引號(hào)括起來(lái)的若干個(gè)字符組成的字符序列被稱(chēng)為字符串常量。習(xí)題3。7假設(shè)myword是一個(gè)字變量,mybyte1和mybyte2是兩個(gè)字節(jié)變量,指出下列語(yǔ)句中的錯(cuò)誤原因. (1) mov byte ptr bx,1000(2) mov bx,offset mywordsi(3) c

6、mp mybyte1,mybyte2(4) mov al,mybyte1+mybyte2(5) sub al,myword(6) jnz myword解答(1)1000超出了一個(gè)字節(jié)范圍(2)寄存器的值只有程序執(zhí)行時(shí)才能確定,而offset是匯編過(guò)程計(jì)算的偏移地址,故無(wú)法確定,改為lea bx,mywordsi(3)兩個(gè)都是存儲(chǔ)單元,指令不允許(4)變量值只有執(zhí)行時(shí)才確定,匯編過(guò)程不能計(jì)算(5)字節(jié)量AL與字量myword,類(lèi)型不匹配(6)Jcc指令只有相對(duì)尋址方式,不支持間接尋址方式習(xí)題3。8OPR1是一個(gè)常量,問(wèn)下列語(yǔ)句中兩個(gè)AND操作有什么區(qū)別?    &#

7、160;   AND AL,OPR1 AND 0feh解答前者為“與"操作硬指令助記符,可匯編成機(jī)器代碼。后者為邏輯運(yùn)算符,在匯編時(shí)進(jìn)行“與"運(yùn)算,產(chǎn)生具體數(shù)值。習(xí)題3。9給出下列語(yǔ)句中,指令立即數(shù)(數(shù)值表達(dá)式)的值: (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) mov ax,23h SHL 4(6) mov ax,1234h SHR 6(7) mov al,

8、a' AND (NOT('a-A)(8) mov al,'H OR 00100000b(9) mov ax,(76543 LT 32768) XOR 7654h解答注:對(duì)于邏輯運(yùn)算,有關(guān)操作數(shù)可化為二進(jìn)制數(shù)。(1)67h(2)133h(3)1234h(4)76h(5)0234h(6)0048h(7)41h(8)68h(9)7654h習(xí)題3。10畫(huà)圖說(shuō)明下列語(yǔ)句分配的存儲(chǔ)空間及初始化的數(shù)據(jù)值: (1) byte_var DB ABC,10,10h,EF,3 DUP(-1,?,3 DUP(4)(2) word_var DW 10h,5,EF',3 DUP(?)解答(

9、1)從低地址開(kāi)始,依次是(十六進(jìn)制表達(dá)):41  42  43  0a  10  45  46  ff    04  04  04  ff  04  04  04  ff  04  04  04(2)從低地址開(kāi)始,依次是(十六進(jìn)制表達(dá)):10  00  FB  FF  46  45          

10、0; 習(xí)題3。11請(qǐng)?jiān)O(shè)置一個(gè)數(shù)據(jù)段mydataseg,按照如下要求定義變量: (1) my1b為字符串變量:Personal Computer(2) my2b為用十進(jìn)制數(shù)表示的字節(jié)變量:20(3) my3b為用十六進(jìn)制數(shù)表示的字節(jié)變量:20(4) my4b為用二進(jìn)制數(shù)表示的字節(jié)變量:20(5) my5w為20個(gè)未賦值的字變量(6) my6c為100的常量(7) my7c表示字符串:Personal Computer解答mydataseg segmentmy1b      db Personal Computer'my2b &#

11、160;    db 20my3b      db 14h           ;20hmy4b      db 00010100bmy5w      dw 20 dup(?)my6c      equ 100     

12、     ;my6c = 100my7c      equ <Personal Computermydataseg ends習(xí)題3.12分析例題3.2的數(shù)據(jù)段,并上機(jī)觀察數(shù)據(jù)的存儲(chǔ)形式。 解答以字節(jié)為單位從低地址向高地址依次是:1600  12FFH  FFH  FFH  FFH00  00  00  00  00  00  00  001  2  3  4&#

13、160; 545H  23H  00  00  00  00  00  00  00  00a'  b  cH  e'  l'  l'  o  13  10  $12個(gè)字符串month,每個(gè)字符串從低地址到高地址依次是:m  o  n  t  h25×4個(gè)字節(jié)未定義初值的存儲(chǔ)單元,操作系統(tǒng)設(shè)置為0習(xí)題3。13修改例題3。3,現(xiàn)在用字定義

14、偽指令dw、字串傳送指令movsw和字符串顯示9號(hào)功能調(diào)用實(shí)現(xiàn)。 解答           。model small           .stack           .datasource     dw 3433h,3635htarget &#

15、160;   dw 40 dup(?),'$'           。code           .startup           mov ax,ds         

16、  mov es,ax           cld           mov si,offset source           mov di,offset target         

17、0; mov cx,40           rep movsw           mov si,0           mov dx,offset target           mov ah,

18、9           int 21h           。exit 0           end習(xí)題3。14變量和標(biāo)號(hào)有什么屬性? 解答段地址:表示變量和標(biāo)號(hào)所在代碼段的段地址;偏移地址:表示變量和標(biāo)號(hào)所在代碼段的段內(nèi)偏移地址;類(lèi)型:引用變量時(shí),表示是字節(jié)、字、雙字等數(shù)據(jù)量。引用該標(biāo)號(hào)時(shí),表示

19、它所在同一個(gè)段near類(lèi)型,還是另外一個(gè)段far類(lèi)型.習(xí)題3。15設(shè)在某個(gè)程序中有如下片段,請(qǐng)寫(xiě)出每條傳送指令執(zhí)行后寄存器AX的內(nèi)容: mydata    segment               ORG 100HVARW     DW 1234H,5678HVARB      DB 3,4   

20、            ALIGN 4VARD      DD 12345678H               EVENBUFF      DB 10 DUP(?)MESS      DB HELLO'

21、 BEGIN:    MOV AX,OFFSET MESS               MOV AX,TYPE BUFF+TYPE MESS+TYPE VARD               MOV AX,SIZEOF VARW+SIZEOF BUFF+SIZEOF MESS

22、60;              MOV AX,LENGTHOF VARW+LENGTHOF VARD               MOV AX,LENGTHOF BUFF+SIZEOF VARW           &

23、#160;   MOV AX,TYPE BEGIN               MOV AX, OFFSET BEGIN解答          MOV AX, OFFSET MESS               

24、;              ;AX116H          MOV AX, TYPE BUFF+TYPE MESS+TYPE VARD           ;AX = 1+1+4 = 06H       &

25、#160;  MOV AX,SIZEOF VARW+SIZEOF BUFF+SIZEOF MESS      ;AX = 4+10+5 = 19 = 13H          MOV AX,LENGTHOF VARW + LENGTHOF VARD              ;AX = 2+1 = 03H &

26、#160;        MOV AX,LENGTHOF BUFF + SIZEOF VARW                 ;AX = 10+4 =14 = 0EH          MOV AX,TYPE BIGIN     

27、;                                ;AX = FF02H (近)          MOV AX,OFFSET BEGIN    

28、;                               ;AX = 1BH             習(xí)題3。16利用簡(jiǎn)化段定義格式,必須具有.MODEL語(yǔ)句。MASM定義了

29、哪7種存儲(chǔ)模式,TINY和SMALL模式創(chuàng)建什么類(lèi)型(EXE或COM)程序?設(shè)計(jì)32位程序應(yīng)該采用什么模式? 解答MASM定義的7種存儲(chǔ)模式是TINY(微型模式、SMALL(小型模式)、COMPACT(緊湊模式)、MEDIUM(中型模式)、LARGE(大型模式)、HUGE(巨大模式)、FLAT(平展模式);TINY用于創(chuàng)建COM類(lèi)型程序、一般程序都可以選用SMALL模式;設(shè)計(jì)32位的程序應(yīng)該采用FLAT模式。習(xí)題3。17源程序中如何指明執(zhí)行的起始點(diǎn)?源程序應(yīng)該采用哪個(gè)DOS功能調(diào)用,實(shí)現(xiàn)程序返回DOS? 解答源程序中運(yùn)用STARTUP偽指令指明執(zhí)行的起始點(diǎn);源程序應(yīng)該采用DOS功能調(diào)用的4CH

30、子功能實(shí)現(xiàn)程序返回DOS的。習(xí)題3.18在SMALL存儲(chǔ)模式下,簡(jiǎn)化段定義格式的代碼段、數(shù)據(jù)段和堆棧段的缺省段名、定位、組合以及類(lèi)別屬性分別是什么? 解答段定義偽指令       段名       定位       組合       類(lèi)別       組名。CODE   

31、;        _TEXT     WORD    PUBLIC  CODE'    。DATA          _DATA      WORD    PUBLIC  'DATA'    DGROUP。

32、DATA?      _BSS     WORD  PUBLIC  'BSS   DGROUP.STACK        STACK      PARA     STACK   'STACK  DGROUP習(xí)題3.19如何用指令代碼代替。startup和.exit指令,使得

33、例題3。1a能夠在MASM 5.x下匯編通過(guò)?解答;lt301a。asm(文件名).model small         .stack         .datastring     db Hello,Everybody !,0dh,0ah.         。code start:   

34、; mov ax ,data          mov ds,ax         mov dx,offset string          mov ah,9         int 21h       &#

35、160; mov ax ,4c00h         int 21h         end start 習(xí)題3.20創(chuàng)建一個(gè)COM程序完成例題3.1的功能。 解答;lt301a,asm          。model tiny          

36、。code                .startup         mov dx,offset string         mov ah,9         int 21h  &#

37、160;     .exit 0string  db Hello,Everybody!'0dh,0ah,'  ;        end習(xí)題3.21按下面要求寫(xiě)一個(gè)簡(jiǎn)化段定義格式的源程序 (1) 定義常量num,其值為5;數(shù)據(jù)段中定義字?jǐn)?shù)組變量datalist,它的頭5個(gè)字單元中依次存放1、0、2、5和4,最后1個(gè)單元初值不定;(2) 代碼段中的程序?qū)atalist中頭num個(gè)數(shù)的累加和存入datalist的最后1個(gè)字單元中。解答 

38、0;         。model small           .stack           .datanum        equ 5datalist   dw 1,0,2,5,4,?   

39、        。code           .startup           mov bx,offset datalist           mov cx,num     

40、;      xor ax,ax again:     add ax,bx           inc bx           inc bx           loop again &#

41、160;         mov bx,ax           。exit 0           end習(xí)題3。22按下面要求寫(xiě)一個(gè)完整段定義格式的源程序 (1)數(shù)據(jù)段從雙字邊界開(kāi)始,其中定義一個(gè)100字節(jié)的數(shù)組,同時(shí)該段還作為附加段;(2)堆棧段從節(jié)邊界開(kāi)始,組合類(lèi)型為stack;(3)代碼段的類(lèi)別是code&#

42、39;,指定段寄存器對(duì)應(yīng)的邏輯段;主程序指定從100h開(kāi)始,給有關(guān)段寄存器賦初值;將數(shù)組元素全部設(shè)置為64h.解答stack      segment para stack'           dw  512 dup(?)stack      endsdata       segment array 

43、;     db 100 dup(?)data       endscode       segment codeassume cs:code,ds:data,es:data,ss:stack          org 100hstart:     mov ax,data   &

44、#160;       mov ds,ax           mov es,ax           mov di,offset array           mov al,64h     

45、60;     mov cx,100           cld           rep stosb           mov ax,4c00h         &

46、#160; int 21hcode       ends           end start習(xí)題3。23編制程序完成兩個(gè)已知雙精度數(shù)(4字節(jié))A和B相加并將結(jié)果存入雙精度變量單元SUM中(不考慮溢出). 解答;xt327。asm                 。model 

47、 small             .stack  256         ;定義堆棧段大小為256個(gè)字節(jié)             .data A       dd  11223344h&

48、#160;        ;定義兩個(gè)雙字的數(shù)(隨意)  B       dd  77553311h   sum       dd  ?               ;定義結(jié)果,執(zhí)行后為:88776655h &#

49、160;           .code             。startup             xor  si, si         ;相對(duì)于變量的位移量清

50、零             mov  cx, 2          ;分高低字分別相加,共兩次             clc           &

51、#160;     ;清零cf  again:   mov ax, word ptr Asi    ;取第一個(gè)數(shù)的一個(gè)字(先低字后高字)             adc ax, word ptr Bsi    ;取第二個(gè)數(shù)的一個(gè)字(先低字后高字)        

52、0;    mov word ptr sumsi, ax     ;存和的一個(gè)字(先低字后高字)             inc si                ;修改位移量指向下一個(gè)字(加2)             inc si             loop  again         ;cx=cx-1 ,if cx0 ,jump again             .exit 0 

溫馨提示

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

評(píng)論

0/150

提交評(píng)論