欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    新版汇编语言程序设计钱晓捷第3章汇编语言程序格式答案.pdf

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

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

    新版汇编语言程序设计钱晓捷第3章汇编语言程序格式答案.pdf

    欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!新版汇编语程序设计钱晓捷第3章汇编语程序格式答案第3章汇编语程序格式习题3.1 伪指令语句与硬指令语句的本质区别是什么?伪指令有什么主要作?解答伪指令语句与硬指令语句的本质区别是能不能产CPU 动作;伪指令的作是完成对如存储模式、主存变量、程序、宏及段定义等很多不产 CPU 动作的说明,并在程序执前由汇编程序完成处理。习题3.2 什么是标识符,汇编程序中标识符怎样组成?解答为了某种需要,每种程序语都规定了在程序如何描述名字,程序语的名字通常被称为标识符;汇编语中的标识符般最多由31个字母、数字及规定的特殊符号(如-,?,)组成,不能以数字开头。习题3.3 什么是保留字,汇编语的保留字有哪些类型,并举例说明。解答保留字是在每种语中规定了有特殊意义和功能的不允许再做其它处的字符串;汇编语的保留字主要有硬指令助记、伪指令助记符、运算符、寄存器名以及预定义符号等。汇编语对写不敏感。如定义字节数和字符串的 DB 就是伪指令助记符。习题3.4 汇编语句有哪两种,每个语句由哪4个部分组成?解答汇编语句有执性语句和说明性语句;执性语句由标号、硬指令助记符、操作数和注释四部分组成;说明性语句由名字、伪指令助记符、参数和注释四部分组成习题3.5 汇编语程序的开发有哪4个步骤,分别利什么程序完成、产什么输出件。解答编辑本编辑程序汇编语源程序.asm汇编汇编程序标模块件.obj连接连接程序可执件.exe 或.com调试调试程序应程序习题3.6 将第2章习题2.36 采简化段定义格式编写成个完整的源程序。解答;简化段定义格式.model small;定义程序的存储模式(模式).stack;定义堆栈段(默认1024个字节).data;定义数据段str1 db Input Number:09:,0dh,0ah,$str2 db Error!,0dh,0ah,$欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!.cade;定义代码段.startup;说明程序的起始点,建ds,ss的内容。mov ah,09h;显str1字符串mov dx,offset str1int 21hgetkey:mov ah,1;调DOS功能int 21hcmp al,0jb error;于0,出错处理cmp al,9ja error;于9,出错处理mov ah,02h;调DOS显字符功能,显该数字mov dl,alint 21h.exit 0;终程序执,返回DOSerror:mov ah,09h;出错,调DOS 功能显str2字符串mov dx,offset str2int 21hjmp getkey;返回按键end;汇编结束习题3.7将第2章习题2.37采完整段定义格式编写成个完整的源程序。解答;xt307.asmstack segmentdw 512 dup(?)stack endsdata segmentarray db 255db 0array1 db 255 dup($)array2 db 0dh,0ah,$data endscode segment codeassume cs:code,ds:data,ss:stackstart:mov ax,datamov ds,axmov ah,0ah;键盘输字符串欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!mov dx,offset arrayint 21hmov dx,offset array2;回车换mov ah,09hint 21hmov bx,offset array1again:mov al,bxcmp al,$jz donecmp al,a;于a和于z的字符不是写字母jb nextcmp al,zja nextsub al,20h;在a和z之间的字符才是写字母,转换为写mov bx,al;保存到原位置next:inc bxjmp againdone:mov dx,offset array1mov ah,09hint 21hmov ax,4c00hint 21hcode endsend start习题3.8区分下列概念:(1)变量和标号(2)数值表达式和地址表达式(3)符号常量和字符串常量解答(1)变量是在程序运过程中,其值可以被改变的量;标号是由户定义的标识符,指向存储单元,表其存储内容的逻辑地址。(2)数值表达式般是由运算符连接的各种常数所构成的表达式,地址表达式是由名字、标号以及利各种的操作符形成的表达式。(3)在程序中,为了使常量更便于使和阅读,经常将些常量常量定义语句定义为符号常量,被对双引号括起来的若个字符组成的字符序列被称为字符串常量。习题3.9假设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)字节量AL与字量myword,类型不匹配(6)Jcc指令只有相对寻址式,不持间接寻址式习题3.10OPR1是个常量,问下列语句中两个AND操作有什么区别?AND AL,OPR1 AND 0feh解答前者为“与”操作硬指令助记符,可汇编成机器代码。后者为逻辑运算符,在汇编时进“与”运算,产具体数值。习题3.11给出下列语句中,指令即数(数值表达式)的值:(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,?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习题3.12为第2章例题2.54定义变量count、block、dplus和dminus。解答假设block开始的数据块有32个字节数据:16个正数+100(64h)、16个负数-48(0d0h)分别连续分布:block db 16 dup(100),16 dup(-48);也可以是任意字节数据,随意分布。dplus db 32 dup(?);为正数预留存储空间dminus db 32 dup(?);为负数预留存储空间count equ 32;字节数习题3.13为第2章例题2.55定义相应变量,并形成个完整的汇编语程序。解答;lt239b.asm.model small.stack.datastring1 db good morning!;两字符串可相同或不同,但字符数要求相同。string2 db Good morning!result db?;预留结果字节count=14;字符数.code.startupmov ax,ds;所有数据在同个段,所以使es=dsmov es,axmov si,offset string1mov di,offset string2mov cx,countagain:cmpsbjnz unmatdec cxjnz againmov al,0jmp outputunmat:mov al,0ffhoutput:mov result,al欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!.exit0end习题3.14画图说明下列语句分配的存储空间及初始化的数据值:(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 04 ff 04 04 04 ff 04 04 04(2)从低地址开始,依次是(六进制表达):10 00 FB FF 46 45 习题3.15请设置个数据段mydataseg,按照如下要求定义变量:(1)my1b为字符串变量:Personal Computer(2)my2b为进制数表的字节变量:20(3)my3b为六进制数表的字节变量:20(4)my4b为进制数表的字节变量:20(5)my5w为20个未赋值的字变量(6)my6c为100的常量(7)my7c表字符串:Personal Computer解答mydataseg segmentmy1b db Personal Computer?my2b db 20my3b db 14h;20hmy4b db 00010100bmy5w dw 20 dup(?)my6c equ 100;my6c=100my7c equmydataseg ends习题3.16分析例题3.2的数据段,并上机观察数据的存储形式。解答以字节为单位从低地址向地址依次是:1600 12FFH FFH FFH FFH00 00 00 00 00 00 00 001 2 3 4 5欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!45H 23H 00 00 00 00 00 00 00 00a?b?c?H?e?l?l?o?13 10$?12个字符串?month?,每个字符串从低地址到地址依次是:?m?o?n?t?h?254个字节未定义初值的存储单元,操作系统设置为0习题3.17修改例题3.3,现在字定义伪指令dw、字串传送指令movsw和字符串显9号功能调实现。解答.model small.stack.datasource dw 3433h,3635htarget dw 40 dup(?),$.code.startupmov ax,dsmov es,axcldmov si,offset sourcemov di,offset targetmov cx,40rep movswmov si,0mov dx,offset targetmov ah,9int 21h.exit 0end习题3.18变量和标号有什么属性?解答段地址:表变量和标号所在代码段的段地址;偏移地址:表变量和标号所在代码段的段内偏移地址;类型:引变量时,表是字节、字、双字等数据量。引该标号时,表它所在同个段 near类型,还是另外个段far类型。习题3.19设在某个程序中有如下段,请写出每条传送指令执后寄存器 AX的内容:mydata segmentORG 100HVARW DW 1234H,5678H欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!VARB DB 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 MESS;AX116HMOV AX,TYPE BUFF+TYPE MESS+TYPE VARD;AX=1+1+4=06HMOV AX,SIZEOF VARW+SIZEOF BUFF+SIZEOF MESS;AX=4+10+5=19=13HMOV AX,LENGTHOF VARW+LENGTHOF VARD;AX=2+1=03HMOV AX,LENGTHOF BUFF+SIZEOF VARW;AX=10+4=14=0EHMOV AX,TYPE BIGIN;AX=FF02H(近)MOV AX,OFFSET BEGIN;AX=1BH习题3.20利简化段定义格式,必须具有.MODEL语句。MASM定义了哪7种存储模式,TINY和SMALL模式创建什么类型(EXE或COM)程序?设计32位程序应该采什么模式?解答MASM定义的7种存储模式是TINY(微型模式、SMALL(型模式)、COMPACT(紧凑模式)、MEDIUM(中型模式)、LARGE(型模式)、HUGE(巨模式)、FLAT(平展模式);TINY于创建COM类型程序、般程序都可以选SMALL模式;设计32位的程序应该采FLAT模式。习题3.21源程序中如何指明执的起始点?源程序应该采哪个DOS功能调,实现程序返回DOS?解答源程序中运STARTUP伪指令指明执的起始点;源程序应该采DOS功能调的4CH 功能实现程序返回DOS的。习题3.22在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.23如何指令代码代替.startup和.exit指令,使得例题3.1a能够在MASM 5.x下汇编通过?解答;lt301a.asm(件名).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习题3.24创建个COM程序完成例题3.1的功能。解答;lt301a,asm.model tiny.code.startupmov dx,offset stringmov ah,9int 21h.exit 0string db Hello,Everybody!0dh,0ah,$;end习题3.25按下要求写个简化段定义格式的源程序(1)定义常量num,其值为5;数据段中定义字数组变量datalist,它的头5个字单元中依次存放-1、0、2、5和4,最后1个单元初值不定;(2)代码段中的程序将datalist中头num个数的累加和存datalist的最后1个字单元中。解答.model small.stack.data欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!num equ 5datalist dw-1,0,2,5,4,?.code.startupmov bx,offset datalistmov cx,numxor ax,axagain:add ax,bxinc bxinc bxloop againmov bx,ax.exit 0end习题3.26按下要求写个完整段定义格式的源程序(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?assume cs:code,ds:data,es:data,ss:stackorg 100hstart:mov ax,datamov ds,axmov es,axmov di,offset arraymov al,64hmov cx,100cld欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!rep stosbmov ax,4c00hint 21hcode endsend start习题3.27编制程序完成两个已知双精度数(4字节)A和B相加并将结果存双精度变量单元SUM中(不考虑溢出)。解答;xt327.asm.model small.stack 256;定义堆栈段为256个字节.dataA dd 11223344h;定义两个双字的数(随意)B dd 77553311hsum dd?;定义结果,执后为:88776655h.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习题3.28编制程序完成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习题3.29结构数据类型如何说明、结构变量如何定义、结构字段如何引?解答结构类型的说明使对伪指令STRUCT(MASM5.x是STRUC,功能相同)和ENDS。它们的格式为:结构名STRUCT;数据定义语句结构名ENDS结构变量定义的格式为:变量名,结构名字段初值表引结构字段,采圆点“.”操作符,其格式是:结构变量名.结构字段名。习题3.30记录数据类型如何说明,记录变量如何定义,width和mask操作符是什么作?解答记录类型的说明采伪指令RECORD,它的格式为:记录名RECORD 位段,位段定义记录变量的格式:记录变量名记录名段初值表Width记录名/记录位段名操作符返回记录或记录位段所占的位数。mask记录位段名操作符返回个8位或16位数值,其中对应该位段的个位为1,其余位为0。

    注意事项

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

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开