汇编语言程序设计(第四版)第3章【课后答案】_第1页
汇编语言程序设计(第四版)第3章【课后答案】_第2页
汇编语言程序设计(第四版)第3章【课后答案】_第3页
汇编语言程序设计(第四版)第3章【课后答案】_第4页
汇编语言程序设计(第四版)第3章【课后答案】_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

汇编语言编程第4版放学后练习题-以中途为理第三章汇编语言程序格式练习3.1伪指令和硬指令的本质区别是什么?伪命令的主要作用是什么?回答伪命令语句与硬命令语句的根本区别在于是否可以创建CPU操作。伪指令完成了许多不创建CPU作业(如存储模式、默认存储变量、子程序、宏和段定义)的指令,并且在程序运行之前由汇编程序进行处理。练习3.2标识符是什么,汇编程序的标识符是如何组成的?回答为了某种需要,每个程序语言都规定了在程序中描述名称的方法,程序语言的名称通常称为标识符;程序集语言的标识符通常最多包含31个字符、数字和特殊字符(例如-、$、),不能以数字开头。练习3.3说明保留字是什么,汇编语言的保留字是什么种类,例如。回答保留字是在每个语言中提供特殊意义和功能的其他用途不允许使用的字符串。汇编语言的保留字主要是硬命令助记符、伪命令助记符、运算符、寄存器名称和预定义符号等。汇编语言对大小写不敏感。定义字节数和字符串的DB是伪命令助记符。练习3.4汇编语句有哪两种?每个语句由哪四部分组成?回答程序集语句有执行语句和说明语句。执行语句由四部分组成:标签、硬命令助记符、操作数和注释。说明语句由四部分组成:名称、伪命令助记符、参数和注释练习3.5开发汇编语言程序的四个阶段,分别使用哪些程序完成哪些输出文件。回答“文本编辑器”“编辑”“汇编语言源”。ASM汇编程序目标模块文件。obj连接程序可执行文件。exe或.com调试器应用程序调试练习3.6区分以下概念:(1)变量和标签(2)数字表达式和地址表达式(3)符号常数和字串常数回答(1)变量是程序运行时值可以更改的量。标签是用户指定的标识符,指示存储内容的逻辑地址的存储设备。(2)数值表达式通常由运算符连接的各种常量组成,这是使用名称、标签和各种运算符形成的表达式。(3)为了使程序更容易使用和读取常数,经常将常数定义语句定义为符号常数,由双引号括起来的多个字符组成的字符序列称为字符串常数。假定练习3.7 myword是单词变量,mybyte1和mybyte2是指示以下语句中错误原因的双字节变量:(1) mov byte ptr bx,1000(2) mov bx,offset mywordsi(3) CMP mybyte1,mybyte2(4) mov al,mybyte1 mybyte2(5)子艾尔,麦沃德(6) jnz myword回答(1)1000超出了单字节范围(2)寄存器值仅在程序运行时确定,offset是装配过程中计算的偏移地址,因此无法解析,并将更改为lea bx,mywordsi(3)两者都是存储设备,不允许指令(4)变量值仅在运行时确定,装配过程不能计算(5)字节数AL和字数myword,类型不匹配(6)Jcc指令只有相对寻址方式,不支持间接寻址方式练习3.8op R1是常量,以下语句中两个AND操作之间的区别是什么?AND AL,OPR1 AND 0feh回答电子是可以用机器代码装配的“and”操作的硬命令助记符。后者是组合时执行“and”运算以生成特定值的逻辑运算符。练习3.9以下语句提供了命令的直接数目(数字表达式)的值:(1) mov al,23h AND 45h OR 67h(2) mov ax,1234h/16 10h(3) mov ax,NOT(65535 XOR 1234h)(4) mov al,低1234h或高5678h(5) mov ax,23h SHL 4(6) mov ax,1234h SHR 6(7) mov al, a AND (NOT(a-A )(8) moval,“h”or 0010000 b(9) mov ax,(76543 LT 32768) XOR 7654h回答注:对于逻辑操作,操作数可以转换为二进制数。(1)67h(2)133h(3)1234h(4)76h(5)0234h(6)0048h(7)41h(8)68h(9)7654h练习3.10插图说明了以下语句分配的存储空间和初始化的数据值:(1) byte _ var db ABC ,10,10h, ef ,3 dup (-1,3 DUP(4)(2) word_var DW 10h,-5, EF ,3 DUP(?),以获取详细信息回答(1)从低地址开始,然后(十六进制表示):41 42 43 0a 10 45 46 ff-04 04 ff-04 04 ff-04 04(2)从低地址开始,然后(十六进制表示):10 00 fbff 46 45 -设置prod 3.11数据段mydataseg,并根据以下要求定义变量:(1) my1b是字符串变量:Personal Computer(2) my2b是以小数表示的字节变量:20(3) my3b是以十六进制表示的字节变量:20(4) my4b是以二进制表示的字节变量:20(5) my5w是20个未赋值的单词变量(6) my6c为100的常数(7) my7c表示字符串:Personal Computer回答MydataegsegmentMy1b db“个人计算机”My2b db 20My3b db 14h20hMy4b db0000100bMy5w dw 20 dup(?),以获取详细信息My6c equ 100My6c=100My7c equMydataseg ends练习3.12分析示例3.2中的数据段并观察数据存储格式。回答从低地址到高地址的字节顺序如下:1600 12FFH FFH FFH FFH00 00 00 00 00 00 00 001 2 3 4 545H 23H 00 00 00 00 00 00 00 00 00 00 00 00 00A b c h 、 e 、 l 、 o 13 10 $ 12个字符串“month”,每个字符串从低地址到高地址:“m”“o”“n”“t”“h”254字节的初始值未定义的存储设备,操作系统设置为0练习3.13)修改示例3.3,实施伪命令dw、字符串传输命令movsw和字符串显示9功能调用。回答.model small.stack.dataSource dw 3433h,3635hTarget dw 40 dup(?),$.code.startupMov ax、dsMov es,axCldMov si,offset sourceMovedi,offset targetMov cx,40Rep movswMov si,0Mov dx,offset targetMov啊,9Int 21h.exit 0End练习3.14变量和标签的属性是什么?回答段地址:表示带有变量和标签的段的段地址。偏移地址:表示带变量和标签的段的段内偏移地址。类型:引用变量时,指示字节、单词、双单词等数据量。参考标示时,指示其位于同一线段(near类型或其他线段-far类型)上。练习3.15程序包含以下片段:执行每个传输命令后,填写寄存器AX的内容。我的数据段ORG 100HVARW DW 1234H,5678HVARBDB 3,4ALIGN 4VARD DD 12345678HevenBUFF DB 10 DUP(?),以获取详细信息MESS DB“HELLO”BEGIN: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回答Mov ax,offset messAx=116 hMov ax,type buff type mess type vardAX=1 1 4=06HMOV AX,size of varw size of buff size of mess;AX=4 10 5=19=13HMov ax,varw length of vardAX=2 1=03HMov ax,length of buff sizeof varwAX=10 4=14=0EHMov ax、type bigginAX=FF02H(近)Mov ax,offset beginAX=1BH要简化定义prod 3.16段的格式。必须存在MODEL语句。MASM定义了哪七种存储模式?TINY和SMALL模式编写什么类型的(EXE或COM)程序?设计32位程序需要使用什么模式?回答MASM定义的7种存储模式包括TINY(小模式)、SMALL(小模式)、COMPACT(小模式)、MEDIUM(中模式)、LARGE(大模式)、HUGE(大模式)和TINY用于创建COM类型的程序,普通程序可以选择SMALL模式。设计32位元的程式必须使用FLAT模式。如何在prod 3.17源程序中表示执行起点?源程序返回到DOS的DOS功能调用是什么?回答源程序使用STARTUP伪命令表示运行的起点。源程序应使用DOS功能调用的4ph子功能实现程序返回到DOS。在练习3.18 SMALL存储模式下,段定义格式中的段、数据段和堆段的默认段名、位置、组合和类别属性分别是什么?回答段定义虚拟指令段名称位置组合类别群组名称.CODE _TEXT WORD PUBLIC CODE.DATA _DATA WORD PUBLIC DATA DGROUP.DATA?_BSS WORD PUBLIC BSS DGROUP.STACK STACK PARA STACK STACK DGROUP练习3.19。startup和。如何使用命令代码而不是exit命令在MASM 5.x中装配示例3.1a?回答lt 301 a . ASM(文件名).model small.stack.datastring dbHello,every body!0dh,0ah$ .codeStart: mov ax,dataMov ds,axMov dx,offset stringMov啊,9Int 21hMov ax,4c00hInt 21hEnd start创建完成prod 3.20示例3.1功能的COM程序。回答lt 301 a,asm.model tiny.code.startupMov dx,offset stringMov啊,9Int 21h.exit 0String db Hello,Everybody!0dh、0ah、$;End练习3.21根据以下要求编写简化段定义格式的源程序(1)定义值为5的常数num。定义词数组变量datalist,最后一个单位初始值,该变量包含数据段中的前五个单词单位(1,0,2,5,4);(2)片段中的程序累计datalist中的第一个num数,并将其存储为datalist中的最后一个单词。回答.model small.stack.dataNum equ 5Datalist dw -1,0,2,5,4,.code.startupMov bx,offset datalistMov cx,numXor ax,axAgain: add ax,bxInc bxInc bx回路againMov bx,ax.exit 0End练习3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论