zoukankan      html  css  js  c++  java
  • 《x86汇编语言:从实模式到保护模式》检测点和习题答案

    检测点1.1:按顺序分别为:13  15  78  255  128  56091

    检测点1.2:按顺序分别为:1000  1010  1100  1111  11001  1000000  1100100  11111111  1111101000  1111111111111111  100000000000000000000

    检测点1.3:按顺序分别为:8  10  11  12  13  14  15  16  31  1741  1022  4092  65535

    检测点1.4:按顺序分别为:8  a  c  f  19  40  64  ff  3e8  ffff  100000

    检测点1.5:1.按顺序分别为:11  1010  1100  1111  100000  111111  1011111110  1111111111111111  100111111100000001011101  1111100110011111111111011111111

                       2.按顺序分别为:1/1  11/3  0101/5  111/7  1001/9  1011/A  1101/D  1111/F  0/0  10/2  100/4  110/6  1000/8  1100/C  1110/E

    检测点1.6:1.4092/111111111100    2.27B6100/10011110110110000100000000

    第1章习题:1.5  C  =15D=1111B  =12D=1100B  =10D=1010B  =8H=1000B  =11D=1011B  =14D=1110B  =16D=10000B  2.12  10101 10001111  1000000000 1FF

    检测点2.1:1.(2)  (16)  (4)  (32)  2. (7)  (8)  最高位 3. (00)  (0F)  (8)  (00、02、04、06、08、0A、0C、0E)  双字时,是00、04、08、0C

    检测点2.2:A3D8H

    检测点2.3:1.8  (AX BX CX DX SI DI BP SP)  (AH AL BH BL CH CL DH DL)  2.(A)  (C)  (D  F)  3.(A B C D F)

    第2章习题:1.  64个   2. 25BC0H~35BBFH

    检测点3.1:1.(略)    2. (B)  (A)  (C)

    第3章习题:1.  00H、35H、40H   2. 49H(即73个字节)

    检测点4.1:1.(0)  (0)  (1)  (0)  (0)  (1)  2. (A B C)  

    检测点4.2:1.(略)   2. (略)  3.应在屏幕克上角显示a、s、m三个字母

    检测点5.1:1.(0xB8000)  (0xB800)  (0xF9E)  (0x27)  (0x48) 2. (E F G H J L)  A错误的原因是企图向8位寄存器传送16位字; B错误的原因是向段寄存器传送立即数; C错误的原因是通过8位寄存器AL向段寄存器传送; D错误的原因是未指示内存操作数的长度; I错误的原因是两个寄存器不匹配; K错误的原因是在两个内存单元之间传送。

    检测点5.2:db一行不该出现0xf000

    检测点6.3:0xf0  0xff  0x81  0xffff  0x8a08

    检测点6.4:

    1:

       当ZF=(1),时,表明计算结果为零;    jz指令的意思是当ZF=(1)时,即计算结果为0时转移;    je指令的意思是当ZF=(1)时,即计算结果为0时转移;    jnz指令的意思是当ZF=(0)时,即计算结果不为(0)时转移;    jne指令的意思是当ZF=(0)时,即计算结果不为(0)时转移; 2:

      cmp ax,bx

      ja  lbb

      je  lbz

      jb  lbl

    第1章习题:

    检测点12.2:  当前栈段描述符的B位是1,基地址为0x00700000,界限值为0xFFFFE。那么,在32位模式下,该栈段的有效地址范围是0x00700000~(        )。当ESP的内容为0XFFFFF002时,还能压入一个双字吗?为什么? 如书中所说,当栈段描述符的B位为1时,段界限是以4KB位单位的,因此,此时实际使用的段界限值是0xFFFFE*0x1000+0xFFF=0xFFFFEFFF,再根据

    实际使用的段界限+1≤( ESP 的内容-操作数的长度)≤0xFFFFFFFF

    可以得到ESP的范围为0xFFFFEFFF+1<=ESP<=0xFFFFFFFF,即0XFFFFF000<=ESP<=0XFFFFFFFF,用题目中所给出的栈段基地址0x007C0000加上ESP所允许的最小和最大偏移量,即可得栈段的最低端地址是0x007C0000+0xFFFFF000=0x007BF000,最高端地址为0x007C0000+0xFFFFFFFF=0x007BFFFF,即题目中的栈段有效地址范围为0x007BF000~0x007BFFFF。当ESP的内容为0XFFFFF002时,对应的物理地址为0x007C0000+0xFFFFF002=0x007BF002,压入一个双字时,ESP-4=0xFFFFF002-4=0XFFFFEFFE,对应的物理地址为0x007C0000+0xFFFFEFFE=0x007BEFFE,由于该地址在栈段的最低端地址以下,所以是不能压入一个双字的。

  • 相关阅读:
    CF 142B Tprimes
    CF 231A Team
    poj 2001 Shortest Prefixes ——字典树入门
    hdu 1039 Easier Done Than Said?
    poj 2528 Mayor's posters
    hdu 1061 Rightmost Digit
    poj 2503 Babelfish
    CF271 A. Beautiful Year
    poj 2752
    CF271 B. Prime Matrix
  • 原文地址:https://www.cnblogs.com/leec/p/8150645.html
Copyright © 2011-2022 走看看