第 2 章:寄存器

检测点 2.1

(1)写出每条汇编指令执行后相关寄存器中的值。

指令

寄存器值(十六进制形式)

mov ax, 62627

AX = FA43

mov ah, 31H

AX = 3143

mov al, 23H

AX = 3123

add ax, ax

AX = 6246

mov bx, 826CH

BX = 826C

mov cx, ax

CX = 6246

mov ax, bx

AX = 826C

add ax, bx

AX = 04D8

mov al, bh

AX = 0482

mov ah, bl

AX = 6C82

add ah, ah

AX = D882

add al, 6

AX = D888

add al, al

AX = D810

mov ax, cx

AX = 6246

注意:第一行左侧指令的数字非 H 结尾,应视为十进制数,运算时需要转换为十六进制。

(2)只能使用目前学过的汇编指令,最多使用 4 条指令,编程计算 2 的 4 次方。

检测点 2.2

(1)给定段地址为 0001H,仅通过变化偏移地址寻址,CPU 的寻址范围为____到____。

答案:00010h;1000Fh

(2)有一数据存放在内存 20000H 单元中,现给定段地址为 SA,若想用偏移地址寻到此单元。则 SA 应满足的条件是:最小为____,最大为____。(提示,反过来思考一下,当段地址给定为多少,CPU 无论怎么变化偏移地址都无法寻到 20000H 单元?)

答案:(20000 - 0FFFF)/16 = 10001/16 = 1001h;20000/16 = 2000h

检测点 2.3

下面的 3 条指令执行后, CPU 几次修改 IP ? 都是在什么时候?最后 IP 中的值是多少?

答案:4 次。(1)第一行;(2)第二行;(3)第三行读完指令 IP 自动增加;(4)第四行执行完指令跳转到 ax;

实验一

Last updated