Skip to content

Latest commit

 

History

History
68 lines (52 loc) · 1.98 KB

File metadata and controls

68 lines (52 loc) · 1.98 KB

第二章:寄存器

检测点 2.1

  1. 写出每条汇编指令执行后相关寄存器中的值
mov ax, 62627     AX=[F4A3H]
mov ah, 31H       AX=[31A3H]
mov al, 23H       AX=[3123H]
add ax, ax        AX=[6246H]
mov bx, 826CH     BX=[826CH]
mov cx, ax        CX=[6246H]
mov ax, bx        AX=[826CH]
add ax, bx        AX=[04DBH]
mov al, bh        AX=[0482H]
mov ah, bl        AX=[6C82H]
add ah, ah        AX=[D882H]
add al, 6         AX=[D888H]
add al, al        AX=[D810H]
mov ax, cx        AX=[6246H]
  1. 只能使用目前学过的汇编指令,最多使用 4 条指令,编程计算 2 的 4 次方。
mov ax,2
add ax,ax
add ax,ax
add ax,ax

检测点 2.2 p25

  1. 给定段地址为 0001H,仅通过变化偏移地址寻址,CPU 的寻址范围为 [00010H] 到 [1000FH]
  2. 有一数据存放在内存 20000H 单元中,现给定段地址 SA,若想用偏移地址寻到此单元。则 SA 应满足的条件是:最小为 [1001H],最大为:[2000H]

检测点 2.3 p35

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

mov ax, bx
sub ax, ax
jmp ax

4 次,分别在 读入 mov ax, bx 后,读入 sub ax, ax 后,读入 jmp ax 后,执行完 jmp ax 后,最后 IP 的值为 0

实验 1 查看 CPU 和内存,用机器指令和汇编指令编程 p35

Windows XP、2000 cmd 下 debug 的使用,或者 Dox 下 debug

  • 启动 debug
cmd> debug
  • r 查看寄存器内容
  • r reg 修改寄存器内容
  • d 段地址:偏移 [可选的长度] 查看指定地址的内存
  • e 段地址:偏移 修改指定地址的内存内容,可以直接跟要修改的内容,或者以 Q/A 的方式修改
  • u 段地址:偏移 将内存的机器指令翻译为汇编指令
  • t 执行一条指令
  • a 段地址:偏移 以汇编格式写入指令

(3) FFF00H~FFFFFH 的内容对应 ROM 的地址,无法修改

(4) B8100H 开始的一段地址对应显存内容,对其修改会改变的显示内容