本文将总结《汇编语言》第二章——寄存器,相关知识点和习题答案。
一、习题答案
检测点2.1
1,写出下面每步运算后的结果
mov ax, 62627 AX = f4a3 H
mov ah, 31H AX = 31a3 H
mov al, 23H AX = 3123 H
add ax, ax AX = 6246 H
mov bx, 826CH BX = 826c H
mov cx, ax CX = 6246 H
mov ax, bx AX = 826c H
add ax, bx AX = 04d8 H
mov al, bh AX = 0482 H
mov ah, bl AX = 6c82 H
add ah, ah AX = d882 H
add al, 6 AX = d888 H
add al, al AX = d810 H
mov ax, cx AX = 6246 H
2,编程题:使用mov和add两种指令,计算2的4次方,不超过4条指令
mov ax, 2
add ax, ax
add ax, ax
add ax, ax
检测点2.2
1,00010 H —— 1000f H
00010 + FFFF = 1000F
2,1001 H 2000 H
20000H - FFFFH = 10001H
检测点2.3
1,代码分析,代码如下:
mov ax, bx
sub ax, ax
jmp ax
分析:
上述3条指令执行后,CPU 4次修改IP,前3次分别在CPU读取前3条指令后,第4次在执行“jmp ax”指令后,最后IP中的值是0。
二、知识图谱
2.9 - 2.12小结
1,段地址在8086CPU的段寄存器中存放。当8086CPU要访问内存时,有段地址提供内存单元的段地址。8086CPU有4个段寄存器,其中CS用来存放指令的首地址。
2,CS存放指令的首地址,IP存放指令的偏移地址。
8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。
3,8086CPU的工作过程:
1)从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器;
2)IP指向下一条指令;
3)执行指令。(转到步骤1,重复这个过程。)
4)8086CPU提供转移指令修改CS、IP的内容。
三、实验
本章开始进行Dos环境下,第一次汇编编程实验,所以,我也是在此时开始尝试搭建Dos汇编实验环境。
1,win10搭建Dos环境
《汇编语言》一书中,作者是在Windows 2000平台下操作的,直接“win+r” -> 输入“command”,即可进入dos环境,-> 输入“debug”,然后开启debug.exe。
我的OS是win10 X64,输入“command”时,会提示“找不到文件”。而输入“cmd”,可以进入“cmd.exe”窗口,然后再输入“debug”,又会提示“不是内部或外部命令”。后来,我在网上搜了,win10平台不能开启dos。网友们推荐使用虚拟机,安装win7。
我电脑上本身安装了vmware,并配了一个win7 X64虚拟机。在win7 X64下,仍不能开启dos,现象同win10。再然后,我重新安装了一个win7 X86,安装《汇编语言》一书的方法,成功开启dos和debug.exe。
综上,win10搭建dos环境就是一个伪命题。还是需要在win7 X86下搭建。
2,debug基本命令汇总
下面用一张图来总结书中出现的一些debug命令