第5章作业答案
习题5
1.试说明以下指令中各操作数的寻址方式,如果是存储器寻址,请给出其EA计算公式,并说明所使用的段寄存器。 (1)MOV AL,08H 源操作数:立即数寻址 目的操作数:寄存器寻址
(2)MOV [0120H],BL 源操作数:寄存器寻址
目的操作数:直接寻址,EA=0120H,使用DS段寄存器
(3)ADD [BX],AL 源操作数:寄存器寻址
目的操作数:寄存器间接寻址,EA=(BX),使用DS段寄存器
(4)PUSH [SI]0200H
源操作数:变址寻址,EA=(SI)+0200H,使用DS段寄存器 目的操作数:隐含寻址(指令中未直接体现)
(5)SUB AX,[BP]
源操作数:寄存器间接寻址,EA=(BP),使用SS段寄存器 目的操作数:寄存器寻址
(6)AND VAR1+4,DL 源操作数:寄存器寻址
目的操作数:直接寻址,EA=VAR1+4,使用DS段寄存器
(7)PUSHF
源操作数、目的操作数均为隐含寻址
(8)MOV ES:[BX]0100H,AL 源操作数:寄存器寻址
目的操作数:基址寻址,EA=(BX)+0100H,使用ES段寄存器
(9)ADC BYTE PTR [BP][SI]0210H,45H 源操作数:立即数寻址
目的操作数:基址变址寻址,EA=(BP)+(SI)+0210H,使用SS段寄存器
(10)OR ARRY[BX][DI],CL 源操作数:寄存器寻址
目的操作数:基址变址寻址,EA=(BX)+(DI)+ARRY,使用DS段寄存器
2.试分析下列汇编指令是否存在语法错误,如果有语法错误存在,请说明是怎样的错误。 (1)PUSH 8243H
错误,单操作数指令不能使用立即数
(2)POP AL
错误,进栈、出栈指令的操作数应为16位
(3)MOV AL,6543H
错误,源、目的操作数类型不匹配
(4)ADD [0100H],64H
错误,目的操作数应使用PTR运算符指出类型,否则具有二义性 正确的写法:ADD BYTE PTR [0100H],64H,(或使用WORD PTR)
(5)ADC VAR1,VAR2
错误,8086指令系统的双操作数指令中,必须有一个是寄存器,不能两个操作数同为内存单元
(6)MOV DS,ES
错误,段寄存器间不能使用MOV指令直接传递数据,必须通过通用寄存器作为中转
(7)MOV DS,0620H
错误,使用MOV指令向段寄存器传递数据时,不能使用立即数
(8)LEA BX,AX
错误,LEA指令的源操作数必须为内存单元
(9)DEC AL,AH
错误,DEC指令为单操作数指令
(10)SHR BL,3
错误,当移位次数大于1时,在移位指令中特定使用CL寄存器给出移位次数 正确的写法:MOV CL, 3 SHR BL, CL
3.试说明分别执行下列各组指令后,CF、OF、AF、ZF、SF、PF这六个状态标志分别是怎样的取值。
(1)MOV AL,08H ADD AL,0F9H
CF=1; OF=0; AF=1; ZF=0; SF=0; PF=0
(2)MOV AL,0E1H ADD AL,0F4H
CF=1; OF=0; AF=0; ZF=0; SF=1; PF=0
(3)MOV AL,01H SUB AL,02H
CF=1; OF=0; AF=1; ZF=0; SF=1; PF=1
(4)MOV AL,02H INC AL
CF维持MOV指令前的取值 (INC指令不影响CF);OF=0; AF=0; ZF=0; SF=0; PF=1
(5)MOV AL,01H AND AL,02H
CF=OF=0; AF不确定; ZF=1; SF=0; PF=1
4.按要求分析下面程序片段的执行结果。 MOV AL,0C2H MOV AH,0E4H ADD AL,AH
执行该程序片段后,(AL)=?,(AH)=?,如果将ADD指令的两个操作数解释为无符号数,运算有没有溢出?为什么?如果将ADD指令的两个操作数解释为补码,运算有没有溢出?为什么?
答:执行该程序片段后,(AL)=0A6H,(AH)=0E4H,如果操作数解释为无符号数,运算溢出,因为加法运算后最高位产生了进位,CF=1,需使用9个二进制位才能表达完整运算结果;如果将操作数解释为补码,则运算没有溢出,因为从操作数与运算结果的符号位观察,两个操作数均为负数补码,相加后所得结果仍然为负数补码,符号位正确,表明加法结果未超出补码表示范围(这里是8位补码的表示范围),加法运算后OF=0。
5.按要求分析下面程序片段的执行结果。 MOV AL,98H MOV BL,42H XCHG AL,BL
SUB AL,BL
执行该程序片段后,(AL)=?,(BL)=?,如果将SUB指令的两个操作数解释为无符号数,运算有没有溢出?为什么?如果将SUB指令的两个操作数解释为补码,运算有没有溢出?为什么?如果将SUB指令的两个操作数解释为补码,其减法运算对应的十进制真值表达式应如何书写?
答:执行该程序片段后,(AL)=0AAH,(BL)=98H,如果将操作数解释为无符号数,则运算溢出,从操作数判断,此运算属于被减数小于减数的情况,这在无符号数运算中是不允许的(如果当前操作数仅为长数据的一部分,则另当别论),减法运算后最高位必然产生借位,CF=1;如果操作数解释为补码,运算也溢出,从操作数判断,此运算属于“正-负”类型,等价于“正+正”类型,正确的运算结果应为正数或零的补码,而运算结果的符号位却为“负”,表明运算结果超出补码表示范围(这里为8位补码表示范围),减法运算后OF=1。
SUB指令所使用的被减数补码为42H=01000010B,减数补码为98H=10011000B,由于被减数为正数补码,它等于真值本身,而减数补码为负数补码,将其取反加1后,添上负号,得到其二进制真值为 -01101000B。将被减数、减数的二进制真值转换为十进制后,得到真值运算表达式:66 -(-104)=170,很明显运算结果超出8位补码的最大值+127。
6.按要求分析下面程序片段的执行结果。 STC
MOV AL,03H AND AL,02H ADC AL,00H
执行该程序片段后,(AL)=?
答:(AL)=02H,此题应注意AND指令会强置CF为0。
7.假设(DS)=1000H,(SS)=2000H,字内存单元(10200H)=0870H,(10202H)=2000H,(20870H)=0203H,(20872H)=0405H,括号内所给为内存单元物理地址,括号表示该地址所指示单元中保存的数据,分别执行下列程序片段后,按要求分析各程序片段的执行结果。
…… 此处隐藏:1056字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [实用模板]第八章:法国“新浪潮”与“左岸派”
- [实用模板]2021年北京上半年临床医学检验技师生物
- [实用模板]SAP GUI 7.10客户端安装配置文档
- [实用模板]2001年临床执业医师资格考试综合笔试试
- [实用模板]36机场工作实用英语词汇总结
- [实用模板](一)社会保险稽核通知书
- [实用模板]安全教育主题班会材料
- [实用模板]濉溪县春季呼吸道传染病防控应急演练方
- [实用模板]长沙房地产市场周报(1.30-2.3)
- [实用模板]六年级数学上册典中点 - 图文
- [实用模板]C程序设计(红皮书)习题官方参考答案
- [实用模板]中国证监会第一届创业板发行审核委员会
- [实用模板]桥梁工程复习题
- [实用模板]2011学而思数学及答案
- [实用模板]初中病句修改专项练习
- [实用模板]监理学习知识1 - 图文
- [实用模板]小机灵杯四年级试题
- [实用模板]国贸专业毕业论文模板
- [实用模板]教育学概论考试练习题-判断题4
- [实用模板]2015届高考英语一轮复习精品资料(译林
- 00Nkmhe_市场营销学工商管理_电子商务_
- 事业单位考试法律常识
- 诚信教育实施方案
- 吉大小天鹅食品安全检测箱方案(高中低
- 房地产销售培训资料
- 高一地理必修1复习提纲
- 新概念英语第二册lesson_1_练习题
- 证券公司内部培训资料
- 小学英语时间介词专项练习
- 新世纪英语专业综合教程(第二版)第1册U
- 【新课标】浙教版最新2018年八年级数学
- 工程建设管理纲要
- 外研版 必修一Module 4 A Social Surve
- Adobe认证考试 AE复习资料
- 基于H.264AVC与AVS标准的帧内预测技术
- 《食品检验机构资质认定管理办法》(质
- ABB变频器培训课件
- (完整版)小学说明文阅读练习题及答案
- 深思洛克(SenseLock) 深思IV,深思4,深
- 弟子规全文带拼音




