《汇编语言》学习(二)寄存器

时间:2022-10-28 01:27:18

    本文将总结《汇编语言》第二章——寄存器,相关知识点和习题答案。

一、习题答案

检测点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命令

《汇编语言》学习(二)寄存器