欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    汇编语言程序设计第3章课后答案doc.docx

    • 资源ID:12350376       资源大小:21.50KB        全文页数:27页
    • 资源格式: DOCX        下载积分:6金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要6金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    汇编语言程序设计第3章课后答案doc.docx

    1、汇编语言程序设计第3章课后答案doc汇编语言程序设计 第四版【课后习题答案】 - 囮裑為檤第 3 章 汇编语言程序格式习题伪指令语句与硬指令语句的本质区别是什么伪指令有什么主要作用解答伪指令语句与硬指令语句的本质区别是能不能产生 CPU动作;伪指令的作用是完成对如存储模式、主存变量、子程序、宏及段定义等很多不产生 CPU动作的说明,并在程序执行前由汇编程序完成处理。习题什么是标识符,汇编程序中标识符怎样组成解答为了某种需要,每种程序语言都规定了在程序里如何描述名字,程序语言的名字通常被称为标识符;汇编语言中的标识符一般最多由 31 个字母、数字及规定的特殊符号(如 - , )组成,不能以数字开

    2、头。习题 什么是保留字,汇编语言的保留字有哪些类型,并举例说明。解答保留字是在每种语言中规定了有特殊意义和功能的不允许再做其它用处的字符串;汇编语言的保留字主要有硬指令助记、伪指令助记符、运算符、寄存器名以及预定义符号等。汇编语言对大小写不敏感。如定义字节数和字符串的 DB就是伪指令助记符。习题汇编语句有哪两种,每个语句由哪 4 个部分组成解答汇编语句有执行性语句和说明性语句;执行性语句由标号、硬指令助记符、操作数和注释四部分组成;说明性语句由名字、伪指令助记符、参数和注释四部分组成习题汇编语言程序的开发有哪 4 个步骤,分别利用什么程序完成、产生什么输出文件。解答 编辑 文本编辑程序 汇编语

    3、言源程序 .asm 汇编 汇编程序 目标模块文件 .obj 连接 连接程序 可执行文件 .exe 或 调试 调试程序 应用程序习题区分下列概念:(1)变量和标号(2)数值表达式和地址表达式(3)符号常量和字符串常量解答(1)变量是在程序运行过程中,其值可以被改变的量;标号是由用户自定义的标识符,指向存储单元,表示其存储内容的逻辑地址。(2)数值表达式一般是由运算符连接的各种常数所构成的表达式,地址表达式是由名字、标号以及利用各种的操作符形成的表达式。(3)在程序中,为了使常量更便于使用和阅读 , 经常将一些常量用常量定义语句定义为符号常量,被一对双引号括起来的若干个字符组成的字符序列被称为字符

    4、串常量。习题假设 myword 是一个字变量, mybyte1 和 mybyte2 是两个字节变量,指出下列语句中的错误原因。(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 超出了一个字节范围(2)寄存器的值只有程序执行时才能确定,而 offset 是汇编过程计算的偏移地址,故无法确定,改为 lea bx,mywordsi(3)两个都是存储单元,指令不允许(4)变

    5、量值只有执行时才确定,汇编过程不能计算(5)字节量 AL 与字量 myword,类型不匹配(6) Jcc 指令只有相对寻址方式,不支持间接寻址方式习题 OPR1是一个常量,问下列语句中两个 AND操作有什么区别AND AL,OPR1 AND 0feh解答前者为“与”操作硬指令助记符,可汇编成机器代码。后者为逻辑运算符,在汇编时进行“与”运算,产生具体数值。习题给出下列语句中,指令立即数(数值表达式)的值:(1) mov al,23h AND 45h OR 67h(2) mov ax,1234h/16+10h(3) mov ax,NOT(65535 XOR 1234h)(4) mov al,LO

    6、W 1234h OR HIGH 5678h(5) mov ax,23h SHL 4(6) mov ax,1234h SHR 6(7) mov al , a AND (NOT(a - A)(8) mov al, H OR 00100000b(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习题画图说明下列语句分配的存储空间及初始化的数据值:(1) byte_var DBABC,10,

    7、10h,EF,3DUP(-1,3 DUP(4)(2) word_var DW 10h,-5, EF,3 DUP()解答(1)从低地址开始,依次是(十六进制表达):4142430a104546ff040404ff04 0404 ff 0404 04(2)从低地址开始,依次是(十六进制表达):10 00 FB FF 46 45 习题请设置一个数据段 mydataseg ,按照如下要求定义变量:(1) my1b 为字符串变量: Personal Computer(2) my2b 为用十进制数表示的字节变量:20(3) my3b 为用十六进制数表示的字节变量:20(4) my4b 为用二进制数表示的字

    8、节变量:20(5) my5w 为 20 个未赋值的字变量(6) my6c 为 100 的常量(7) my7c 表示字符串: Personal Computer解答mydataseg segmentmy1bdb Personal Computer my2bdb 20my3bdb 14h;20hmy4bdb 00010100bmy5wdw 20 dup()my6cequ 100;my6c = 100my7cequ mydataseg ends习题分析例题的数据段,并上机观察数据的存储形式。解答以字节为单位从低地址向高地址依次是:1600 12FFH FFH FFH FFH0000000000000

    9、0001234545H 23H 00 00 00 00 00 00 00 00a b cH e l l o 13 10 $12 个 字 符 串 month , 每 个 字 符 串 从 低 地 址 到 高 地 址 依 次是: m o n t h254个字节未定义初值的存储单元,操作系统设置为 0习题修改例题,现在用字定义伪指令 dw、字串传送指令 movsw和字符串显示 9 号功能调用实现。解答.model small.stack.datasource dw 3433h,3635htarget dw 40 dup(),$.code.startupmov ax,dsmov es,axcldmov

    10、si,offset sourcemov di,offset targetmov cx,40rep movswmov si,0mov dx,offset targetmov ah,9int 21h.exit 0end习题变量和标号有什么属性解答段地址:表示变量和标号所在代码段的段地址;偏移地址:表示变量和标号所在代码段的段内偏移地址;类型:引用变量时, 表示是字节、 字、双字等数据量。引用该标号时, 表示它所在同一个段 near 类型,还是另外一个段 far 类型。习题设在某个程序中有如下片段,请写出每条传送指令执行后寄存器mydata segmentAX的内容:ORG 100HVARWVARB

    11、DW 1234H,5678HDB 3,4ALIGN 4VARDDD HEVENBUFFDB 10 DUP()MESSBEGIN:DB HELLOMOV 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,OFFSETMESS; AX 116HMO

    12、VAX, TYPEBUFF+TYPEMESS+TYPEVARD; AX = 1+1+4= 06HMOV AX,SIZEOF VARW+SIZEOF BUFF+SIZEOF MESS; AX = 4+10+5 =19 = 13HMOV AX,LENGTHOFVARW+ LENGTHOFVARD;AX =2+1 = 03HMOV AX,LENGTHOF BUFF + SIZEOF VARW;AX = 10+4 =14 = 0EHMOVAX,TYPEBIGIN; AX = FF02H( 近)MOVAX,OFFSETBEGIN;AX=1BH习题利用简化段定义格式,必须具有 .MODEL语句。 MASM

    13、定义了哪 7 种存储模式, TINY 和 SMALL模式创建什么类型( EXE或 COM)程序设计 32 位程序应该采用什么模式解答MASM定义的 7 种存储模式是 TINY(微型模式、 SMALL(小型模式)、 COMPACT(紧凑模式)、 MEDIUM (中型模式)、 LARGE(大型模式)、 HUGE(巨大模式)、 FLAT(平展模式); TINY 用于创建 COM类型程序、一般程序都可以选用 SMALL模式;设计 32 位的程序应该采用 FLAT模式。习题源程序中如何指明执行的起始点源程序应该采用哪个 DOS功能调用,实现程序返回 DOS解答源程序中运用 STARTUP伪指令指明执行的

    14、起始点;源程序应该采用 DOS功能调用的 4CH子功能实现程序返回 DOS的。习题在 SMALL存储模式下,简化段定义格式的代码段、数据段和堆栈段的缺省段名、定位、组合以及类别属性分别是什么解答段定义伪指令 段名 定位 组合 类别 组名.CODE _TEXT WORD PUBLIC CODE.DATA _DATA WORD PUBLIC DATA DGROUP.DATA _BSS WORD PUBLIC BSS DGROUP.STACK STACK PARA STACK STACK DGROUP习题如何用指令代码代替 .startup 和.exit 指令,使得例题能够在 MASM下汇编通过解答

    15、;( 文件名 ).model small.stack.datastring db Hello,Everybody ! ,0dh,0ah. $.codestart: mov ax ,datamov ds,axmov dx,offset stringmov ah,9int 21hmov ax ,4c00hint 21hend start习题创建一个 COM程序完成例题的功能。解答;lt301a,asm.model tiny.code.startupmov dx,offset stringmov ah,9int 21h.exit 0stringdb Hello,Everybody!0dh,0ah,$

    16、end;习题按下面要求写一个简化段定义格式的源程序(1) 定义常量 num,其值为 5;数据段中定义字数组变量 datalist ,它的头 5 个字单元中依次存放 -1 、 0、2、 5 和 4,最后 1 个单元初值不定;(2) 代码段中的程序将 datalist 中头 num个数的累加和存入 datalist 的最后 1 个字单元中。解答num.model small.stack.dataequ 5datalist dw -1,0,2,5,4,.code.startupmov bx,offset datalistmov cx,numxor ax,axagain: add ax,bxinc b

    17、xinc bxloop againmov bx,ax.exit 0end习题按下面要求写一个完整段定义格式的源程序(1)数据段从双字边界开始,其中定义一个 100 字节的数组,同时该段还作为附加段;(2)堆栈段从节边界开始,组合类型为 stack ;(3)代码段的类别是 code,指定段寄存器对应的逻辑段;主程序指定从 100h 开始,给有关段寄存器赋初值;将数组元素全部设置为 64h。解答stack segment para stack dw 512 dup()stack endsdata segmentarray db 100 dup()data endscode segment code

    18、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 21hcode endsend start习题编制程序完成两个已知双精度数( 4 字节) A 和 B 相加并将结果存入双精度变量单元 SUM中(不考虑溢出)。解答;.model small.stack 256 ;定义堆栈段大小为 256 个字节.dataA dd h ;定义两个双字的数(随意)B d

    19、d hsum dd ;定义结果,执行后为: h.code.startupxor si, si ;相对于变量的位移量清零mov cx, 2 ;分高低字分别相加,共两次clc ;清零 cfagain: mov ax, word ptr Asi ;取第一个数的一个字(先低字后高字)adc ax, word ptr Bsi ;取第二个数的一个字(先低字后高字)mov word ptr sumsi, ax ;存和的一个字(先低字后高字)inc si ;修改位移量指向下一个字(加 2)inc siloop again ; cx=cx-1 ,if cx0 ,jump again.exit 0end习题编制程

    20、序完成 12H、45H、0F3H、6AH、20H、0FEH、90H、0C8H、57H和 34H 等 10 个字节数据之和,并将结果存入字节变量 SUM中(不考虑溢出)。解答.startupxor si, si ;位移量清零mov al, bdatasi ;取第一个数mov cx, num-1 ;累加次数again: inc si ;指向下一个数adc al, bdatasi ;累加loop again ;如未完,继续累加mov sum, al ;完了,存结果.exit 0end习题结构数据类型如何说明、结构变量如何定义、结构字段如何引用解答结构类型的说明使用一对伪指令 STRUCT(是 STR

    21、UC,功能相同)和 ENDS。它们的格式为:结构名 STRUCT ; 数据定义语句结构名 ENDS结构变量定义的格式为:变量名,结构名 字段初值表引用结构字段,采用圆点“ . ”操作符,其格式是:结构变量名 . 结构字段名。习题记录数据类型如何说明,记录变量如何定义,width和 mask 操作符是什么作用解答记录类型的说明采用伪指令 RECORD,它的格式为:记录名 RECORD位段 ,位段 定义记录变量的格式:记录变量名 记录名 段初值表Width 记录名 / 记录位段名操作符返回记录或记录位段所占用的位数。mask记录位段名操作符返回一个 8 位或 16 位数值,其中对应该位段的个位为 1,其余位为 0。


    注意事项

    本文(汇编语言程序设计第3章课后答案doc.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开