《x86汇编语言:从实模式到保护模式》课后答案
Posted rtoax
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《x86汇编语言:从实模式到保护模式》课后答案相关的知识,希望对你有一定的参考价值。
《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,由于该地址在栈段的最低端地址以下,所以是不能压入一个双字的。
以上是关于《x86汇编语言:从实模式到保护模式》课后答案的主要内容,如果未能解决你的问题,请参考以下文章
程序的加载和执行——《x86汇编语言:从实模式到保护模式》读书笔记23
《X86汇编语言 从实模式到保护模式》bochs 配置教程(详细)