求出以下各16进制数与i7 6660uh的和,并根据结果设置标志位sf,zf,cf,of的值

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
ibmpc汇编语言(第二版)第三章课后详细习题答案
下载积分:1000
内容提示:ibmpc汇编语言(第二版)第三章课后详细习题答案
文档格式:DOCX|
浏览次数:22|
上传日期: 00:56:11|
文档星级:
该用户还上传了这些文档
ibmpc汇编语言(第二版)第三章课后详细习题答案
官方公共微信汇编语言第三五章课后题答案_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
汇编语言第三五章课后题答案
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩38页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢IBM-PC汇编语言程序设计答案(第2版)_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
IBM-PC汇编语言程序设计答案(第2版)
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩93页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢《汇编语言程序设计》(宋人杰 主编)课后习题1-3章答案_神仙轩吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:9贴子:
《汇编语言程序设计》(宋人杰 主编)课后习题1-3章答案
第1章 汇编语言基础知识1.简述汇编语言源程序、汇编程序、和目标程序的关系。答:用汇编语言编写的程序称为汇编源程序;汇编源程序在汇编程序的翻译下转换成计算机语言变成目标程序。2. 简述汇编语言的优缺点。答:(1) 汇编语言的优点:① 可有效地访问、控制计算机各种硬件设备,如磁盘、存储器、CPU、I/O端口等。.② 目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。③ 可与高级语言配合使用,应用十分广泛。(2) 汇编语言的缺点:
① 通用性和可移植性较差② 相对于高级语言来说较繁锁、易出错、不够直观。3.CPU的寻址能力为8KB,那么它的地址总线的宽度为多少?答:134. 1KB的存储器有多少个存储单元?答:1024个字节。5. 指令中的逻辑地址由哪两部分组成?答:指令中的逻辑地址由段基址和偏移量组成。6. 以下为用段基址:偏移量形式表示的内存地址,试计算它们的物理地址。(1) 12F8:0100
(2) 1A2F:0103
(3) 1A3F:0003
(4) 1A3F:A1FF答:
(1) 13080H
(2) 1A3F3H
(3) 1A3F3H
(4) 245EFH7. 自12FA:0000开始的内存单元中存放以下数据(用十六进制形式表示): 03 06 11 A3 13 01,试分别写出12FA:0002的字节型数据、字型数据及双字型数据的值。答:
字节型数据:11H
字型数据:0A311H
双字型数据:H8. 内存中某单元的物理地址是19318H,段基地址为1916H,则段内偏移地址为多少?若段内偏移地址为2228H,则段基地址为多少?答:若段基地址为1916H,则段内偏移地址为01B8H;若段内偏移地址为2228H,则段基地址为170FH9. 在实模式环境中,一个段最长不能超过多少字节?答:64KB10. 实模式可寻址的内存范围是多少?答:1MB
第2章 汇编语言源程序格式1.请解释变量和标号的含义,两者有何区别?答:标号代表一条指令所在单元的地址,在代码段中定义;变量是存放数据的存储单元的地址符号名,在除代码段以外的其他段中定义。变量和标号的主要区别在于变量指的是数据,而标号则对应的是指令。2. 变量和标号有什么属性?答:都具有三种属性:段属性、偏移属性和类型属性3. 伪指令语句与指令语句的区别是什么?伪指令有什么用途?答:伪指令并不像指令语句那样在程序运行期间由计算机自动执行,而是在汇编程序对源程序汇编期间由汇编程序处理的操作。伪指令可以完成如处理器选择、定义程序模块、数据定义、存储区分配、指示程序开始和结束等功能。4. 数值返回运算符有哪几种?简述LENGTH和SIZE的区别。答:⑴数值返回运算符包括:SEG(取段地址)、OFFSET(取偏移地址)、TYPE(取类型值)、LENGTH(取长度)、SIZE(取总字节数)。⑵对于变量中使用DUP的情况,LENGTH回送分配给该变量的单元数,对于其他情况则送1;而SIZE会送分配给变量的总字节数,也就是LENGTH和TYPE的乘积。5. 画图说明下列伪指令所定义的数据在内存中的存放形式。
DUP(1,2,DUP(2,5),3)
‘1234’答:(1) 见题图2.1题图2.1
(2) 见题图2.2题图2.2
(3) 见题图2.3题图2.3
(4) 见题图2.4题图2.4
炫酷暗黑奇迹MU页游强悍来袭,秒怪秒BOSS,来玩就送海量RMB礼包!
(5) 题图2.5题图2.56. 写出下列变量定义语句。(1) 为缓冲区BUF1预留20B的存储空间。(2) 将字符串‘ABCD’,‘1234’存放于BUF2存储区中。答:
‘1234’7. 符号定义语句如下:
2,3,4,5,‘345’
问LT的值是多少?答:LT的值为78. 假设程序中的数据定义如下:
问T的值是多少?它表示什么意义?答:T的值是22;它表示从变量A到T之间分配的存储空间(字节)数目。9. 如何规定一个程序执行的开始位置?主程序执行结束应该如何返回DOS?源程序在何处停止汇编过程?答:程序开始位置:END伪指令后的标号所对应的地址;应用程序开始伪指令.STARTUP处。
返回DOS:结合PUSH DS等指令;用DOS功能调用的第4CH号中断;.EXIT伪指令。
END伪指令处停止汇编过程。10.EQU伪指令与“=”伪指令有何区别?答:在同一程序中,“=”伪指令可对一个符号重复定义11.指出下列伪指令表达方式的错误,并改正之。
(2) SEGMENT
(3) MYDATA
ENDP答:(1) SEG改为SEGMENT
(2) 没有段名
ENDS改为MYDATA
MAIN删除第3章 寻址方式及指令系统1.什么是寻址方式,微处理器有几种寻址方式,各类寻址方式的基本特征是什么?答:寻址方式就是寻找指令中操作数的方式,或寻找指令转移目的地址的方式。
微处理器的寻址方式分为数据寻址方式和程序转移寻址方式。数据寻址方式主要包括立即数寻址方式、寻址方式、方式、方式、寄存器相对寻址方式、基址变址寻址方式和相对基址变址寻址方式;程序转移寻址方式主要包括段内直接寻址、段内、段间直接寻址、段间间接寻址。立即数寻址:操作数就在指令中,作为指令的一部分,跟在操作码后存放在代码段。寻址:操作数在寄存器中,指令中指定寄存器号。方式:操作数在存储器中,指令直接包含操作数的有效地址EA。:操作数在存储器中,操作数的有效地址在SI,DI,BX,BP这4个寄存器之一中。相对寻址:操作数在存储器中,操作数的有效地址是一个基址寄存器(BX,BP)或变址寄存器(SI,DI)的内容加上8位或16位的位移之和。基址变址寻址:操作数在存储器中,操作数的有效地址是一个基址(BX,BP)加上变址寄存器(SI,DI)的内容。相对基址变址寻址:操作数在存储器中,操作数的有效地址是一个基址(BX,BP)和变址寄存器(SI,DI)的内容加上8位或16位的位移之和。段内:转向的有效地址是当前IP的内容和指令中指定的8位或16位位移量之和。段内:转向的有效地址是一个或是一个存储单元的内容。段间:在指令中直接提供了转向段地址和偏移地址。段间:用存储器里的两个相继字的内容来取代IP和CS中的原始内容,以达到段间转移的目的。
2. 假定(DS)=1000H,(SI)=007FH,(BX)=0040H,(BP)=0016H,变量TABLE的偏移地址为0100H,试指出下列指令的源操作数字段的寻址方式,它的有效地址(EA)和物理地址(PA)分别是多少?
(1) MOV AX,[1234H]
(2) MOV AX,TABLE
(3) MOV AX,[BX+100H]
(4) MOV AX,TABLE[BP][SI]答:(1) 直接寻址,EA=1234H,PA=11234H (2)直接寻址,EA=0100H,PA=10100H
(3) 寄存器相对寻址,EA=0140H,PA=10140H(4)相对基址变址寻址,EA=0195H,PA=10195H3. 若TABLE为数据段0032单元的符号名,其中存放的内容为1234H,试问下列两条指令有什么区别?执行完指令后,AX寄存器的内容是什么?
AX,TABLE答:第一条指令是取0032单元的内容,执行完后AX的内容是1234H
第二条指令是取TABLE的偏移地址,执行完后AX的内容为0032H4. 指出下列指令的错误。(1) MOV CX,DL (2) MOV IP,AX
(3) MOV ES,1234H (4) MOV ES,DS
(5) MOV AL,300H (6) MOV [SP],AX
(7) MOV AX,BX+DI (8) MOV 20H,AH答:(1) 两操作数长度不一致
(2) 目的操作数不能为IP
(3) 立即数不能直接送段寄存器
(4) 两个段寄存器之间不能直接进行数据传送
(5) 两操作数长度不一致
(6) SP不能用作间址寄存器
(7) BX+DI改为[BX][DI]或[BX+DI]
(8) 目的操作数不能为立即数5. 指出下列指令的错误。(1) POP CS(2) SUB [SI],[DI](3) PUSH AH(4) ADC AX,DS(5) XCHG [SI],30H(6) OUT DX,AH(7) IN AL,3FCH (8) MUL 5答:(1) POP指令不允许使用CS
(2) 两操作数不能同时是存储器寻址方式
(3) 堆栈的操作必须以字为单位
(4) 段寄存器不允许直接参加运算
(5) XCHG指令的操作数不允许是立即数
(6) OUT指令只能用AL做源操作数
(7) 端口号大于255,必须将其放到DX中
(8) MUL指令源操作数不允许是立即数6. 请分别用一条汇编语言指令完成如下功能。
(1) 把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。
(2) 用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。
(3) 用BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的内容相加,并把结果送回存储器中。
(4) 把数0A0H与AL寄存器的内容相加,并把结果送回AL中。答:(1)ADD
AL,[BX+SI]
[BX+0B2H],CX
AL,0A0H7. 求出以下各十六进制数与十六进制数58B0之和,并根据结果设置标志位SF、ZF、CF和OF的值。(1) 1234H(2) 5678H(3) 0AF50H (4) 9B7EH答:(1)和为6AE4H,SF=0,ZF=0,CF=0,OF=0
(2)和为0AF28H,SF=1, ZF=0, CF=0, OF=1
(3)和为0800H, SF=0, ZF=0, CF=1, OF=0
(4)和为0F42EH, SF=1, ZF=0, CF=0, OF=08. 执行指令ADD AL,72H前,(AL)=8EH,标志寄存器的状态标志OF、SF、ZF、AF、PF和CF全为0,指出该指令执行后标志寄存器的值。答:指令执行后,AL的内容为0000000H,且有进位,标志寄存器中各标志位的值为:OF=0,SF=0,ZF=1,AF=1,PF=1,CF=19. 已知程序段如下:
MOV AX,1234H
ROL AX,CL
试问:1、每条指令执行完后,AX的内容是什么?2、每条指令执行完后,CF、SF和ZF的值是什么?3、程序执行完后,AX和DX的内容是什么?答:(1)(2)MOV AX,1234H (AX)=1234H,各标志位不变MOV CL,4 (AX)=1234H,各标志位不变ROL AX,CL (AX)=2341H,CF=1,其它标志位不变DEC AX (AX)=2340H,CF不变,SF=0,ZF=0MOV CX,4 (AX)=2340H,各标志位不变MUL CX (AX)=8D00H,CF=0,ZF=0,SF=0(3)
程序执行完后,(AX)=8D00H,(DX)=0000H10. 编程序段,将AL、BL、CL、DL相加,结果存在DX中。答:MOV AH,0ADD AL,BLADC AH,0ADD AL,CLADC AH,0ADD AL,DLADC AH,0MOV DX,AX11. 编程序段,从AX中减去DI,SI和BP中的数据,结果送BX。答:SUB AX,DISUB AX,SISUB AX,BPMOV BX,AX12. 假设(BX)=0E3H,变量VALUE中存放的内容为79H,确定下列各指令单独执行后的结果。
(5) TEST BX,05H(6) XOR
BX,VALUE答: (1) (BX)=0FBH(2) (BX)=61H(3) (BX)=1CH(4) (BX)=01H(5) (BX)=0E3H
(6) (BX)=9AH13. 已知数据段500H~600H处存放了一个字符串,说明下列程序段执行后的结果。MOV SI,600HMOV DI,601HMOV AX,DSMOV ES,AXMOV CX,256STDREP MOVSB答:将数据段501H~600H中存储的字符串移到数据段502~601H中14. 说明下列程序段的功能。CLDMOV AX,0FEFHMOV CX,5MOV BX,3000HMOV ES,BXMOV DI,2000HREP STOSW答:将附加段的32000H开始的连续5个字初始化为0FEFH15. 判断下列程序段跳转的条件。
THERE答:(1) AX中的值为1E1EH时会跳转(2) AL的最低和最高位至少有一位为1时发生跳转(3) CX中的值小于64H时发生跳转16. 选取正确指令,完成以下任务。
(1) 右移DI三位,并将0移入最左一位。(2) AL内容左移一位,0移入最后一位。(3) DX寄存器右移一位,并且使结果的符号位与原符号位相同。答:(1) MOV CL,3
SHR DI,CL(2) SHL AL,1(3) SAR DX,117. 假设AX和SI存放的是有符号数,DX和DI存放的是无符号数,请用比较指令和条件转移指令实现以下判断。
(1) 若DX&DI,转到ABOVE执行(2) 若AX&SI,转到GREATER执行。
(3) 若CX=0,转到ZERO执行(4) 若AX-SI产生溢出,转到OVERFLOW执行。
(5) 若SI≤AX,转到LESS_EQ执行。(6) 若DI≤DX,转到BELOW_EQ执行。答:(1) CMP DX,DI
ABOVE(2) CMP AX,SI
GREATER(3) CMP CX,0
JE ZERO(4)CMP AX,SIJO
OVERFLOW(5) CMP
LESS_EQ(6)
CMP DX,DIJAE
BELOW_EQ18. 有一个首地址为ARRAY的20个字数组,说明下列程序段的功能。
MOV SI,AXSUM_LOOP: ADD AX,ARRAY[SI]
LOOP SUM_LOOP
MOV TOTAL,AX答:将首地址为ARRAY的20个字数组元素求和,将结果存放到TOTAL单元22. 已知内存中起始地址为BLOCK的数据块(字节数为COUNT)的字节数据有正有负。试编写一个程序,将其中的正、负分开,分别送至同一段中的两个缓冲区,设正、负缓冲区的首地址分别为PLUS和MINUS。答: DATA SEGMENT
BLOCK DB 16 DUP(?)
DB 16 DUP(?)
MINUS DB 16 DUP(?)
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV SI,OFFSET BLOCK
MOV DI,OFFSET PLUS
MOV BX,OFFSET MINUS
MOV CX,COUNT
NEXT:MOV AL,[SI]
TEST AL,80H
MD: MOV [BX],AL
AGAIN: INC
MOV AH,4CH
19. 按照下列要求,编写相应的程序段。
(1) 已知字符串STRING包含有32KB内容,将其中的“$”符号替换成空格。
(2) 有一个100个字节元素的数组,其首地址为ARRAY,将每个元素减1(不考虑溢出)存于原处。
(3) 统计以“$”结尾的字符串STRING的字符个数
(4) 假设从B800H:0开始存放有16个16位无符号数,编程求它们的和,并把32位的和保存在DX、AX中。答:(1)
MOV CX,8000H
AGAIN:CMP STRING[SI],’$’
MOV STRING[SI],20H
NEXT:INC SI
LOOP AGAIN(2)
MOV SI,0MOV CX,100
AGAIN:DEC ARRAY[SI]
LOOP AGAIN(3)
COMP:CMP STRING[SI],’$’
OVER:RET(4)
MOV AX,0B800H
MOV CX,0FH
MOV AX,[SI]
AGAIN:INC SI
ADD AX,[SI]
NEXT:LOOP AGAIN
20. 编写程序,把ARRAY1和ARRAY2中20个字节数分别相加,结果放到TABLE中。
如需完整版 请发邮件至:
贴吧热议榜
使用签名档&&
保存至快速回贴您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
微机原理与接口技 第三章 课后答案.doc5页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
文档加载中...广告还剩秒
需要金币:150 &&
微机原理与接口技 第三章 课后答案
你可能关注的文档:
··········
··········
正在加载中,请稍后...

我要回帖

更多关于 ata6660 的文章

 

随机推荐