科院微机课后习题解答.docVIP

  • 10
  • 0
  • 约3.87千字
  • 约 10页
  • 2018-02-07 发布于河南
  • 举报
科院微机课后习题解答

第二章 2.5 1M=220 因为最小的一个段的大小为16个字节(一个小段),所以 最多有220/24=216 (1) 0FFFFH:0 物理地址为 0FFFF0H (2) 40H:17H 物理地址为 400H+17H=417H (3) 2000H:4500H物理地址为200000H+4500H=24500H (4) 0B821H:4567H 物理地址为 0B8210H+4567H=0BC777H 2.8 65h 0B7h 4Ch 2Ah 78h 56h 34h 12h (1) CX 16位 DL 8位 操作数宽度不一样(类型不一致) IP不能作为源操作数,也不能作为目的操作数 立即数不能直接赋给段寄存器 (4) 段寄存器间不能直接赋值 (5) 类型不一致,立即数300超过8位,不能赋给8位寄存器AL (6) 寄存器间接寻址方式不能使用sp寄存器 (7)+作为算术运算符,它的操作数为常量 (8)20h为立即数不能作为目的操作数 2.11 code segment assume cs:code start: mov al,89h mov指令不影响标志位 add al,al 分析,这里89h看成无符号数化为10进制为137, 执行add al,al后,al的内容为 89h+89h=112h(即274d255d),于是若看成无符号数有进位产生, CF =1 , 看成有符号数则有溢出,因为 89h=1000 1001b是一个负数 这里89h是补码,对应的反码为 1000 1000b 对应的原码为 1111 0111b化成10进制数为-119, -119+(-119)=-238-128(在-128到127这个范围之外了)所以有溢出. OF=1 (al)=12h. 因为运算结果不为0,所以ZF=0,因为(al)=12h=0001 0010 b, 最高位为0,所以SF=0, 0001 0010 b中有2个1,所以PF=1. add al,9dh 12h+9dh=0afh,于是若看成无符号数无进位产生, CF =0 12h对应的10进制数为18d, 9dh对应的二进制为 1001 1101b 这个是补码,对应的反码为 1001 1100b 对应的原码为1110 0011b即 -99d 18+(-99)= - 81 d(在-128到127这个范围之内了)所以没有溢出. OF=0 注:-81d的补码就是 0afh 因为运算结果不为0,所以ZF=0,因为(al)=0afh=1010 1111 b, 最高位为1,所以SF=1, 1010 1111 b中有6个1,所以PF=1. cmp al,0bch (注意:这里的减法只是为了cmp用来比较,在计算机内部算一下,并没有把减法的结果赋给al) cmp通过减法运算修改标志位 把0afh和0bch看成无符号数,0afh小于0bch,所以还有借位,这样, CF=1 把0afh和0bch看成无符号数,0afh对应的10进制数为 -81d 0bch对应的10进制数为 -68d (-81d)-(-68d)=-13d 运算结果在-128d到127d之间,所以没有溢出,这样 OF=0 因为运算结果不为0,所以ZF=0,因为(al)=0f3h=1111 0011 b, 最高位为1,所以SF=1, 1111 0011 b中有6个1,所以PF=1. sub al,al sub al,al后 (al)=0 OF=0 CF=0 ZF=1 SF=0 PF=1 (因为0或偶数个1时,PF=1) dec al 看作无符号数时: 因为 0h小于1h,所以还有借位,但是在设计DEC和INC指令的时候,不影响标志位CF,所以CF=0(如果改成sub al,1,则 CF=1) 因为 0 -1=-1运算结果在-128到127之间,所以没有溢出, 所以OF=0 因为运算结果不为0,所以ZF=0,因为(al)=0ffh=1111 1111 b, 最高位为1,所以SF=1, 1111 1111 b中有8个1,所以PF=1. inc al 因为 ffh加1h,为00h,且有进位,但是在设计DEC和INC指令的时候,不影响标志位CF,所以CF=0(如果改成add al,1,则 CF=1) 因为 -1+1=0,运算结果在-128到127之间,所以没有溢出,所以OF=0因为运算结果为

文档评论(0)

1亿VIP精品文档

相关文档