ImageVerifierCode 换一换
格式:DOC , 页数:18 ,大小:71.51KB ,
资源ID:10710753      下载积分:8 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/10710753.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(汇编语言习题解答第二版.doc)为本站上传会员【人****来】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

汇编语言习题解答第二版.doc

1、

汇编语言习题解答李敬兆第二版 8086/8088和基于ARM核汇编语言程序设计 第1章 汇编语言基础知识习题解答 1.1 什么是汇编语言?汇编语言的特点是什么? 答:为了克服机器语言难以记忆、表达和阅读的缺点,人们采用具有一定含义的符号作为助忆符,用指令助忆符、符号地址等组成的符号指令称为汇编格式指令(或汇编指令)。汇编语言是汇编指令集、伪指令集和使用它们规则的统称。 汇编语言的特点是: (1)执行速度快。 (2)程序短小。 (3) 可以直接控制硬件。 (4) 可以方便地编译。 (5)辅助计算机工作者掌握计算机体系结构。 (6)程序编制耗时,可读性差。 (7)程序可移植性差。

2、 1.2 把下列十进制数转换成二进制数、八进制数、十六进制数。 ① 127 ② 1021 ③ 0.875 ④ 6.25 答: ① 1111111B;177Q;7FH ② 1111111101; 1775Q;3FDH ③ 0.111 B;0.7Q;0.EH ④ 110.01B; 6.2Q;6.4H 1.3 把下列二进制数转换成十进制数。 ① 1001.11 ② 101011.10011 ③ 111.011 ④ 1011.1 答: ① 9.75D ② 43.59375D ③ 7.375D ④ 11.5D 1.4 把下列八进制数转换成十进制数。 ① 573.06 ② 75

3、23 ③ 431.7 ④ 123.45 答: ① 379.09375D ② 61.296875D ③ 281.875 ④ 83.578125 1.5 把下列十六进制数转换成十进制数。 ① 0D5.F4 ② 8BA.7C ③ 0B2E.3A ④ 6EC.2D 答: ① 213.953125D ② 2234.484375 ③ 2862.2265625 ④ 1772.17578125 1.6 把下列英文单词转换成ASCII编码的字符串。 - 1 - ① Upper ② Blow ③ Computer ④ What 答: ① 55H,70H,70H,65H,72H ② 53

4、H,6CH,6FH,77H ③ 43H,6FH,6DH,70H,75H,74H,65H,72H ④ 57H,68H,61H,74H 1.7 求下列带符号十进制数的8位基2码补码。 ① +127 ② −2 ③ −128 ④ +2 答: ① 01111111B ② 11111110B ③ 10000000B ④ 00000010B 1.8 求下列带符号十进制数的16位基2码补码。 ① +628 ② −9 ③ −1234 ④ +3249 答: ① 0000001001110100B ② 1111111111110111B ③ 1111101100101110B ④ 11001

5、0110001B 1.9 下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。 ① 68+(―53) ② 68―53 ③ 68― (―53) ④(―68)―53 答: ① 0FH ②0FH ③ 0A1H ④87H 1.10 汉字在输入、存储、输出过程中所使用的汉字编码是否一样?使用的是什么编码? 答: 在汉字的输入、存储、输出过程中所使用的汉字编码是不一样的,输入时有输入编码,存储时有汉字机内码,输出时有汉字字形码。 第2章 IBM-PC系统结构习题解答 2.1什么是微型计算机?微型计算机主要由哪几部分组成?其主要功能是什么? 答: 微

6、型计算机是指以大规模、超大规模集成电路为主要部件,以集成了计算机主要部件——控制器和运算器的微处理器为核心所构造出的计算机系统。 微型计算机主要由微处理器、存储器、系统总线、I/O接口电路和I/O设备组成。微处理器用来执行程序 指令,完成所有的算术和逻辑运算及全机的控制工作;存储器用来存放程序和数据;系统总线是计算机各功能部件之间进行信息传输的通道;I/O设备是指微型计算机配备的输入输出设备,也称外围设备(简称外设),用来提供具体的输入输出手段。 2.2 8086/8088CPU由哪两部分组成?它们的主要功能是什么? 答: 8086/8088CPU由总线接口部件BIU(Bus Int

7、erface Unit)和执行部件EU(Execution Unit)两部分组成。总线接口部件BIU是8086与系统总线的接口,负责CPU与存储器、I/O端口传送数据;执行部件EU负责指令的执行和数据的运算。 2.3 8086/8088CPU有哪些寄存器?各有什么用途? 答: 8086/8088内部的寄存器可分为通用寄存器、专用寄存器和段寄存器。 8086/8088有8个16位的通用寄存器,包括4个数据寄存器(AX、BX、CX、DX)、2个变址寄存器(SI和DI)和2个指针寄存器(BP和SP)。它们均可以用于保存算术逻辑运算中的操作数和运算结果,但每个寄存器又有各自规定的专门用途。AX通

8、常称为累加器(Accumulator),用于算术运算、逻辑运算以及与外设传送信息等,它是汇编编程中使用频率最高的一个寄存器。BX称为基址寄存器(Base Address Register) ,常用来存放存储器地址。CX称为计数寄存器(Count Register) ,常用来保存计数值。DX称为数据寄存器(Data Register) ,常用来存放双字长数据的高16位,也用于存放I/O的端口地址。SI称为源变址(Source Index)寄存器,DI称为目的变址(Destination Index)寄存器,主要用于存储器寻址方式时提供偏移地址。SI和DI一般与数据段寄存器DS联用,用来确定数据段

9、中某存储单元的地址。在串操作指令中,还有专用的用法:SI和数据段寄存器DS联用,DI和附加段寄存器ES联用,分别用来寻址数据段中的源操作数和附加段的目的操作数。BP称为基址指针(Base Pointer)寄存器,SP称为堆栈指针(Stack Pointer)寄存器,它们主要用于指向堆栈段中的存储单元。BP与堆栈段寄存器SS联用,用来确定堆栈段中某存储单元的地址,BP主要用于给出堆栈中基地址,用它可直接存取堆栈中的数据;SP与堆栈段寄存器SS联用,用来确定堆栈段中栈顶的地址,SP保存堆栈栈顶的偏移地址,用它只可访问栈顶。 IP(Instruction Pointer)为指令指针寄存器,用来存将

10、要执行的指令在代码段中的偏移地址。它和代码段寄存器CS一起可以确定下一条的指令的物理地址。标志寄存器FLAGS也被称为程序状态寄存器PSW,用来存放状态标志和控制标志的寄存器。 - 2 - 8086/8088有4个16位段寄存器,分别为代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS和附加段寄存器ES。段寄存器是根据内存分段的管理模式而设置的,专门用于存放段地址。CS(Code Segment Register)称为代码段寄存器,用来存放代码段的段地址;DS(Data Segment Register)称为数据段寄存器,用来存放数据段的段地址;ES(Extra Segment Regi

11、ster)称为附加段寄存器,用来存放附加段的段地址;SS(Stack Segment Register)称为堆栈段寄存器,用来存放堆栈段的段地址。 2.4 8086/8088CPU哪些寄存器可以用来指示存储器地址? 答: BX、SI、DI、BP、SP、IP、CS、DS、ES、SS。 2.5标志寄存器中有哪些状态标志和控制标志?它们每一位所表示的含义是什么? 答: 标志寄存器中有6个状态标志(CF、PF、AF、ZF、SF、OF)和3个控制标志(TF、IF、DF)。 状态标志用来记录程序运行结果的状态信息,它们是根据有关指令的执行结果由CPU自动设置的,常用作条件转移指令的转移控制条

12、件。CF(Carry Flag)进位标志,主要用来反映运算是否产生进位或借位,如果运算结果的最高位有效位产生进位或借位时,进位标志置1,即CF=1,否则置0。PF(Parity Flag)奇偶标志,用于反映运算结果中“1”的个数的奇偶性,当运算结果最低字节中“1”的个数为零或偶数时,PF=1,否则PF=0。AF(Auxiliary carry Falg)辅助进位标志,记录运算时第3位(低半字节)产生的进位值,辅助进位标志一般在BCD码运算中作为是否进行十进制调整的判断依据。ZF(Zero Flag)零标志,用来反映运算结果是否为0,运算结果为0时ZF位置1,否则置0。SF(Sign Flag)

13、符号标志,记录运算结果的符号,它与运算结果的最高位相同,结果为负时置1,否则置0。OF(Overflow Flag)溢出标志,用于反映有符号数运算结果是否溢出,在运算过程中,如操作数超出了机器能表示的范围,则称为溢出,此时OF位置1,否则置0。 控制标志用于控制处理器的操作,可根据需要用指令设置。TF(Trap Flag)追踪标志,也称单步标志,当追踪标志TF为1时,CPU进入单步方式即CPU每执行一条指令后,产生一个单步中断,通常用于程序的调试;当追踪标志TF为0时,处理器正常工作。IF(Interrupt Flag)中断标志,当IF=1时,CPU可以响应可屏蔽中断请求;当IF=0时,CP

14、U不响应CPU外部的可屏蔽中断发出的中断请求。DF(Direction Flag)方向标志,用于在串处理指令中控制地址的变化方向,当DF位为1时,每次操作后变址寄存器SI和DI自动减少,串处理从高地址向低地址方向处理;当DF为0时,则使SI和DI自动增加,使串处理从低地址向高地址方向处理。 2.6有两个16位数3A4BH和10EFH分别存放在2000H和2004H存储单元中,请用图表示出它们在存储器里的存放情况。 答: 2000H 2001H 2002H 2003H 2004H 2005H H FH 10E AH BH 34 2.7一个存储单元的物理地址、段地址、偏

15、移地址三者之间有何关系? 答: 20位的物理地址由16位的段地址和16位的段内偏移地址组成。物理地址PA(Physical Address)的计算方法如下: 物理地址PA=段地址×10H+偏移地址 2.8在DEBUG程序中,一条指令语句表示为2000:0030 MOV AL,8。请问:段地址、偏移地址和物理地址分别为多少?存放段地址和偏移地址的寄存器是哪两个? 答: 段地址:2000H。偏移地址:0030H。物理地址:20030H。存放段地址的寄存器是CS。存放偏移地址的寄存器是IP。 第3章 8086/8088寻址方式和指令系统 习题解答 一、填空 3.1 指出下列指令源操

16、作数的寻址方式: MOV AX,ARRAY[SI] ; MOV AX,ES:[BX] ; MOV AX,[100] ; MOV AX,[BX+DI] ; MOV AX,BX ; MOV AX,2000H ; MOV AX,ARRAY[BX][SI] ; MOV AX,[DI+20H] ; 答:寄存器相对寻址;寄存器间接寻址;直接寻址;基址变址寻址;寄存器寻址;立即数寻址;相对基址变址寻址;寄存器相对寻址。 3.2 假设(SP)=100H,(SS)=1000H,执行PUSH BP指令后,栈顶的物理地址是 。 答:10102H 3.3 段地址和偏移地址为3FFFH:1234H,它的物理

17、地址是 ,段地址和偏移地址为1000H:000FH,它的物理地址是 。 答:41224H,1000FH 3.4 若要测试AL寄存器中操作数的第0,3,4,7位是否 均为0,然后根据测试结果实现条件转移,可使用 指令,以产生转移条件。这条指令执行后将影响的标志位是 。 答:TEST AL,0A9H;SF,ZF,PF 3.5 现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH, (21202H)=0B7H,(2120

18、3H)=65H,下列指令执行后AX寄存器的内容: MOV AX,1200H ;(AX)= MOV AX,BX ;(AX)= MOV AX,[1200H] ;(AX)= MOV AX,[BX] ;(AX)= MOV AX,1100H[BX] ;(AX)= MOV AX,[BX][SI] ;(AX)= MOV AX,1100H[BX+SI] ;(AX)= 答:1200H,0100H,4C2AH,3412H,4C2AH,7856H,65B7H 3.6 设(BX)=101H,(DS)=2100H ,(CS)=1900H,内存中(21101H)=0C7H,(21102H)=0FFH,(21103H)

19、00H,(21104H)=0F0H,执行如下指令后CS和IP寄存器的值是多少? JMP BX ; (CS)= ,(IP)= JMP [BX] ;(CS)= ,(IP)= JMP WORD PTR[BX+1] ; (CS)= ,(IP)= JMP DWORD PTR[BX] ; (CS)= ,(IP)= 答:1900H,0101H;1900H,0FFC7H;1900H,0FFH;0F000H,FFC7H 3.7 试根据以下要求写出相应的汇编语言指令。 ⑴把BX寄存器和DX寄存器内容相加,结果存入DX寄存器中,汇编语言指令: ; ⑵用寄存器BX和SI的基址变址寻址方式把存储

20、器中的一个字节与AL寄存器的内容相加,并把结果送到AL寄存器中。汇编语言指令: ; ⑶用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器内容相加,并把结果送回到存储器中。汇编语言指令: ; ⑷用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回存储单元中。汇编语言指令: ; ⑸把数0B5H与AL寄存器内容相加,并把结果送回AL寄存器中。汇编语言指令: ; 答:(1)ADD DX,BX (2)ADD AL,BYTE PTR [BX][SI] (3)ADD [BX+0B2H],CX (4)ADD [0524H],2A59H (5

21、ADD AL,0B5H 3.8 指令SAR可用来 除2,而指令SHR可用来 除2。 答:带符号数,无符号数 3.9 条件转移指令的目标地址应在本条指令的下一条指令的 个字节范围内。 答:2 3.10 执行指令XOR AX,AX的含义是 。 答:将AX清零 3.11 一个有16个字的数据区,它的起始地址为 70A0H:DDF6H,那么该数据区的最后一个字单元的物理地址为 H。 答:7E814H 3.12 串处理指令规定源寄存器使用 ,源串在 段中;目的寄存器使 用 ,目的串必须在 段中。 答:SI,数据段,DI,附加段 3.13 执行加法指令时,如果两个操作数的符号相同

22、而结果的符号与之相反,则OF= ;执行减法指令时,如果两个操作数的符号相反,而结果的符号与减数相同,则OF= 。 答:1,1 3.14 数据串传送指令执行前应 做 、 、 、 四项准备工作。 答:置源串首地址、置目的串首地址、置串长、置方向标志 二、选择题(可多选) 3.15 基址寄存器的内容、变址寄存器的内容以及指令中指定的位移量三者之和作为操作数的有效地址,它的寻址方式是 。 A、直接寻址方式 B、寄存 - 4 - 器相对寻址方式 C、基址变址寻址方式 D、相对基址变址寻址方式 3.16 完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是 。 A、M

23、OV AL,00H B、AND AL,00H C、XOR AL,AL D、SUB AL,AL 3.17 指令TEST AL,02H的含义是 。 A、测试AL是否等于02H B、测试AL第二位的状态 C、测试AL第一位的状态 D、将AL的第一位和02单元的各位进行测试 3.18 8086CPU在执行8位有符号数运算后,产生溢出是结果超出了 。 A、0~255 B、+128~-128 C、+255~-256 D、+127~-128 3.19 不能改变8086程序计数指针IP的指令是 。 A、RET B、PUSH AX C、CALL D、JBE 3.20 不影响8086堆栈指针SP值的

24、指令是 。 A、JMP B、PUSH AX C、POP CX D、INT 21H 3.21 8086中执行指令RET 04H表示 。 A、返回到04H单元 B、作段间返回 C、返回到当前地址后第4个单元 D、完成RET指令后SP加4 3.22 下列不正确的指令是(DATA已定义) 。 A、MOV 4[DI],02H B、MOV BYTE PTR4[DI],02H C、MOV 4[DI],AL D、MOV DATA[DI],02H 3.23 假设V1和V2是用DW定义的变量,下列指令中正确的是 。 A、MOV V1,20H B、MOV V1,V2 C、MOV AL,V1 D、MOV

25、 2000H,V2 3.24 下列哪条指令不合法? A、INT AX,0278H B、ROR DX,CL C、CMPSB D、RET 4 3.25 下列指令中,有语法错误的是 。 A、MOV [SI],[DI] B、IN AL,DX C、JMP WPRD PTR[BX] D、PUSH WORD PTR 20[BX+SI-2] 3.26 下列4条指令中, 是错误的。 A、MOV DS,2000H B、ADD DX,[BP] C、MOV AX,200 D、MOV AX,ARRAY[SI+2] 3.27 运算型指令的寻址和转移型指令的寻址,其不同点在于 。 A、前者取操作数,后者决定程

26、序的转移地址 B、后者取操作数,前者决定转移地址 C、两者都是取操作数 D、两者都是决定程序的转移地址 3.28 下列指令中操作数在代码段中的是 。 A、MOV AL,25H B、ADD BH,AL C、INC DS:[25H] D、CMP AL,BL 3.29 设(BL)=5,要使结果(BL)=0AH,应执行指令是 。 A、AND BL,0FH B、NOT BL C、XOR BL,0FH D、OR BL,0FH 3.30 指令JMP DWORD PTR[BX][SI]属于 寻址。 A、寄存器间接寻址 B、相对基址变址寻址 C、段内转移直接寻址 D、段间转移间接寻址 3.31

27、在下列指令中, 指令的执行会影响条件码的CF位。 A、JMP NEXT B、JC NEXT C、INC BX D、SHL AX,1 3.32 将累加器AX的内容清零的正确指令是 。 A、OR AX,0 B、XOR AX,AX C、TEST AX,AX D、CMP AX,AX 答: 3.15 D 3.16 A 3.17 C 3.18 D 3.19 B 3.20 A 3.21 D 3.22 A 3.23 A 3.24 C 3.25 A 3.26 A 立即数不允许直接送入段寄存器 3.27 A 3.28 A 3.29 C 3.30 D 3.31 D 3.32 B - 5 - 三、简答题

28、 3.33 PUSH和POP指令有什么特点? 答:这两条指令都不影响标志位,而且由于堆栈操作必需以字为单位,所以它们只能做字操作,不能使用立即寻址方式。 3.34 算术移位指令和逻辑移位指令有什么不同? 答:移位指令常用于乘2除2操作。其中,算术移位用于带符号数;逻辑移位用于无符号数。 3.35 串处理指令有什么特殊规定?简述REPZ CMPSB指令的执行过程。 答:源串必须在数据段中,目的串必须在附加段中,串处理指令隐含的寻址方式是SI和DI寄存器的间接寻址方式。源串允许使用段跨越前缀来指定段。 REPZ CMPSB指令对两个字节型字符串比较,找到第一个不相等的字节结束。 3

29、36 完成下列操作,选用什么指令? ⑴将AX的内容减去0520H和上次运算的借位; ⑵将变量名TABL的段地址送AX; 答:(1)sbb ax,0520H(2)mov ax,seg tabl 3.37 条件转移指令和无条件转移指令有什么不同? 答:条件转移指令只能实现偏移量为-128至+127字节范围的转移;无条件转移指令根据寻址方式可实现短转移(偏移量为-128至+127字节),段内转移,段间转移。 第4章 8086/8088汇编语言(格式) 习题解答 一、填空题 答: 4.1 有关操作数的伪指令中,算术运算符有+、-、*、/和MOD,逻辑运算符有AND、OR、XOR和NOT

30、关系操作符有EQ(相等)、NE(不等)、LT(小于)、GT(大于)、LE(小于或等于)、GE(大于或等于),数值运算符有TYPE、LENGTH、SIZE、OFFSET、SEG,属性操作符PTR、THIS、段属性前缀、SHORT、HIGH 和LOW。 4.2 下列两个语句的区别在于X1不可以重复定义,X2可以重复定义。 X1 EQU 1000H X2=1000H 4.3 假设 (DS)=3000H ORG 3100H TABLE DB 10,3*4,10H ADDRESS DD TABLE ARRAY DW 2 DUP(675AH,?) 写出下列各单元的内容。 (3100H)=

31、0AH (3101H)= 0CH X DB 4 DUP(2),2 (3102H)= 10H COUNT EQU 10 (3103H)= 00H (3104H)= 01H Y DD COUNT DUP(?) (3105H)= 00H 为变量X分配9个字节存储;为变量Y分配40个 (3106H)= 31H (3107H)= 5AH 字节存储。 (3108H)= 67H 4.13 数据段中有以下定义: (3109H)= 00H (310AH)= 00H ARRAY1 EQU 20H (ARRAY1 代表的是一个数) (310BH)= 5AH ARRAY2 DW 20H (ARRAY2 代

32、表的是一个数的地 (310CH)= 67H (310DH)= 00H 址) (310EH)= 00H 指出下面两条指令的源操作数寻址方式: MOV AX,ARRAY1 ;寻址方式立即数寻址方式 4.4 对于下面的数据定义,各条MOV指令单独执行后,MOV AX,ARRAY2 ;寻址方式直接寻址方式 请写出相关寄存器的内容。 4.14 根据下面的指令序列,CX寄存器中的值应该是FLDB DB ? 18。 TABLEA DW 20 DUP(?) X1 DW ‘AB’ TABLEB DB 'ABCD' X2 DB 16 DUP(?) (1)MOV AX, TYPE F

33、LDB ;(AX)= 1 CNT EQU $-X1 ($代表的是地址计数器的当前 (2)MOV AX, TYPE TABLEA ;(AX)= 2 值) (3)MOV CX, LENGTH TABLEA ;(CX)= … 20 MOV CX,CNT (4)MOV DX, SIZE TABLEA ;(DX)= 4.15 假设ES段中有一个字符串′12FG3LM5C′,其名40 为ARRAY,下面的程序段 (5)MOV CX, LENGTH TABLEB ;(CX)= 1 CLD LEA DI,ES:ARRAY 4.5 设X1、X2是两个已经赋值的变量,指令AND AX,MOV AL,

34、 ′G′ X1 AND X2中,两个AND的区别是 MOV CX,9 第一个AND是逻辑与指令、第二个AND是逻辑与运算符。 REPNE SCASB 4.6 对于指令MOV BX,((X LT 10H) AND 40H)OR 执行后CX的值是5 ((X GE 10H) AND 50H),当X<10H时,汇编结果为MOV二、选择题 BX, 40H ,否则汇编结果为MOV BX, 4.16表示源程序结束伪操作的格式为 。 50H 。 A、ENDS[LABEL] B、END[LABEL] C、 4.7 数据定义语句 ENDS D、END BUF1 DW ? 答:B BUF2 EQU

35、 BYTE PTR BUF1 4.17一般地,我们将计算机指令的集合称为 。 当汇编后,PTR类型操作符使BUF2具有与BUF1相A、机器指令 B、伪指令 C、同的段地址和偏移地址,但类型为字节。 宏指令 D、语句 4.8 ENDP是过程定义结束伪指令,与PROC配套使用。答:A ENDS是段定义结束伪指令,与 4.18在汇编语言程序设计中,伪指令OFFSET表达的含SEGMENT配套使用,END是一个源模块汇编结束伪指令。 义是回送变量或标号的 。 4.9 已知指令ARRAY DB 2 DUP(1 DUP(?)),则该指令A、段地址值 B、偏移地址值 C、分配2个字节单元,指令MOV

36、AX,LENGTH ARRAY执物理地址值 D、操作数 行后,AX= 2 ;指令MOV AX,SIZE ARRAY执行答:B 后,AX= 2 。 4.19若定义DAT DW ‘A’,则DAT和DAT+1两个相邻4.10 汇编程序产生二进制的目标文件OBJ,但OBJ还的内存单元中存放的数据是 。 必须使用link连接转换成可直接执行的EXE文件。 A、00H41H B、41H00H C、 4.11 在指令和伪指令中可直接使用“$”表示地址计数XXH41H D、41HXXH 器的当前值,ORG伪指令后给定的数值应是一个常量。 (选项C、D中的XX表示任意数据) 4.12 DB伪指令以字

37、节为单位分配存储;DD伪指令以双答:B 字为单位分配存储。故如下数据定义: 4.20若定义DAT DW ‘AB’,则DAT和DAT+1两个相邻的内存单元中存放的数据是 。 A、42H41H B、41H42H C、62H61H D、61H62H 答:A 4.21 表示一条指令的存储单元的符号地址称为 。 A、标号 B、变量 C、偏移量 D、类型 答:A 4.22 现用数据定义语句定义数据:BUF DB 4 DUP (0,2 DUP(1,0)),定义后存储单元中有数据0100H的字单元个数是 。 A、4 B、3 C、8 D、12 答:a 4.23 下列语句中有语法错误的语句是 。 A、DB

38、 45H B、DW 0ABCDH C、DW ‘ABCD’ D、DD ‘AB’ 答:C 三、判断题 4.24 MOV BYTE PTR[BX],1000 ; 答:X 4.25 JMP FAR PTR LAB;LAB是标号 ; 答:√ 4.25 JLE FAR PTR LAB;LAB是标号 ; 答:× 4.27 JMP DWORD PTR[BX+SI] ; 答:√ 4.28 PUSH OFFSET VAL;VAL是DB定义的变量 ; 答:√ 4.29 汇编语言程序中,符号地址和标号必须先定义后使用 ; 答:× 4.30 在生成的可执行文件中,伪指令是不存在的 ; 答:√ 4.31

39、语句X=X-Y执行后按照减法规则影响标志位 ; 答:× 4.32 ADD AX,BX与ADC AX,BX得到的结果总是不同 ; 答:× 4.33 JNZ AAA ; 答:× 第5章 基本程序设计习 题解答 5.1 简述编制一个汇编语言程序的步骤。 答: 一般说来,编制一个汇编语言程序需要完成以下步骤: (1) 分析题意,建立数学模型,确定数据结构及算法。 (2) 根据算法画出程序流程图。 (3) 根据算法及数据结构分配内存单元和寄存器。 (4) 编写汇编语言源程序。 (5) 使用汇编程序调试工具上机调试程序。 5.2 简述判断程汇编语言程序序质量的标准。 答: 一个

40、良好的程序应符合以下标准: (1)程序可读性强。 (2)程序执行的时间短(效率高)。 (3)程序所占用的内存少。 (4)程序的语句行数少。 5.3 编写程序,将DATA_NUM起的4个压缩BCD码转换成二进制数,并存放在DATA_NUM下面相邻字节中。 答: MOV BX, DATA_NUM MOV CX,4 BCD: PUSH CX MOV AL,[BX] PUSH AL AND AL,0F0H MOV CL,4 SHR AL,CL MUX AL,10 MOV DL,AL POP AL ADD AL,DL PUSH BX ADD BX,4 MOV [BX],AL POP BX

41、 INC BX POP CX LOOP BCD 5.4 试编写一程序,用查表法将一位十六进制数转换成 与之对应的ASCII码。 答: 程序的数据段如下: DATA SEGMENT TAB DB 30H, 31H, 32H, 33H, 34H, 35H, 36H, 37H DB 38H, 39H, 41H, 42H, 43H, 44H, 45H, 46H HEX DB 6 ASC DB ? DATA ENDS CODE SEGMENT START: MOV BX, 0 MOV AL,HEX MOV AH,0 ADD AX,BX XCHG AX,BX MOV AL,TAB[BX

42、] MOV ASC,AL MOV AH,4CH INT 21H CODE ENDS END START 5.5 试编程求解表达式S=(23000-(X*Y+Z))/Z,其中X=600,Y=25,Z=-2000。 答: DATA SEGMENT X DW 600 Y DW 25 Z DW -2000 S DW ? DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START: MOV AX,DATA MOV DS,AX MOV AX,X MOV BX,Y IMUL BX MOV DX, Z ADD AX,DX MOV BX,AX MO

43、V AX,23000 SUB AX,BX MOV DX,Z IDIV DX MOV S,AL CODE ENDS - 8 - END START 第6章 输入/输出程序设 计习题解答 6.1 用指令实现: (1)将一个字节输出到端口43H。 (2)将一个字节从48H端口输入。 (3)将一个在BUF单元的字节输出到端口2F0H。 (4)将一个字节从端口30H输入,存到内存ABC单元。 (5)将一个字从020FH单元输出。 答: (1) OUT 43H,AL (2) IN AX,48H (3) MOV DX,2F0H MOV AL,BYTE PTR[BUF] OUT DX,AL

44、 (4) IN AL,30H MOV BX,ABC MOV [BX],AL (5) MOV DX,020FH OUT DX,AX 6.2 中断处理程序的典型结构包括哪几部分? 答: 中断处理程序的典型结构包括以下几个部分: (1)现场保护 (2)中断返回 (3)中断嵌套 (4)发中断结束命令 6.3 增加一个新的软中断,应完成哪些操作? 答: 通常增加一个新的软中断,应完成下面一些操作。 ·选择一个可用的中断类型号n。 ·编写新的软中断处理程序。 ·将新的软中断处理程序的入口地址写入到中断矢量表的4×n起的4个字节中。 6.4 CPU与外设问的数据传送方式有哪几种?它们各有

45、什么特点? 答: 主机与外设之间的数据传送(控制)方式有:程序查询传送方式、程序中断传送方式和直接存储器存取(DMA)方式。程序查询传送方式:要求外部设备处于随时能提供数据或接收数据的状态,这种方法不必另设专用的输入/输出指令,只要使用指令系统中所有的存储器操作指令,该方法外设要占用一部分存储器的地址空间,并给存储器地址分配带来不便。 程序中断传送方式: 中断输入/输出方式,实现了CPU与外设并行操作,因此极大地提高了CPU的使用效率。 直接存储器存取(DMA)方式: DMA方式能摆脱CPU的直接干预,利用硬件控制设备DMA控制器(DMAC),实现外部设备与内存间的直接数据传送。 6.

46、5 类型号1DH的中断向量在存储器的哪些单元里? 答: 类型号1DH的中断向量在存储器的7CH、7DH、7EH、7FH。 6.6 内存单元INT9开始放有一个中断服务程序,它所对应的中断类型号为9。试编写建立这一中断向量的程序段。 答: MOV AX, 0 MOV ES, AX MOV DI, 9*4 MOV AX,OFFSET INT9 CLD STOSW MOV AX,CS STOSW STI … INT9: PUSH AX STI … POP AX IRET 6.7 根据本章讲述的内容,试分析下面一段程序实现的功能。 MOV AX, 0 MOV ES, AX MOV DI,36H*4 MOV AX,OFFSET INTBUF STOSW MOV AX,CS STOSW 答: 该段程序设置INTBUF中断服程序的中段向量,INTBUF的中断类型号为36H。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服