检测点3.1

检测点3.1

(1)

 寄存器是互相独立的

 

 

(2)内存中的情况如图3.6所示

 

 

 

各寄存器的初始值: CS=2000H,  IP=0,  DS=1000H,  AX=0,  BX=0;

①写出CPU执行的指令序列(用汇编指令写出)

CS:IP

2000H*10H+0=20000H  物理地址

20000H对应指令——》mov  ax,6622H

jmp  0ff0:0100H

FF0H*10H+100H=10000H——》mov  ax,2000H

mov ax,[0000]

mov  ax,[0002]

读到指令缓冲器中

IP=IP+所读指令的长度(字节数)

执行指令缓器中的内容,回到第一步

 

②写出CPU执行每条指令后,CS、IP和相关寄存器中的数值。

mov  ax,6622H                           cs=2000H   ip=0+3=3      ax=6622H

jmp  0ff0:0100H                             cs=2000H  ip=3+5=8

mov  ax,2000H                            cs=0FF0H  ip=100H+3=103H     AX=2000H

mov ds,ax                                       cs=0FF0H  ip=103H+2=105H     DS=2000H                  2000:8   C389H

mov ax,[0000]                                 CS=0FF0H    ip=105H+3=108H    ax=C389H

mov  ax,[0002]                                cs=0FF0H     ip=108H+3=10BH      ax=EA66H                  2000:2  EA66H 

 

③再次体会:数据和程序(就是指令)有区别吗?如何确定内存中的信息哪些是数据,哪些是程序? 

CS:IP读取的都是指令

DS:【偏移地址】 读取  当作数据

去修改寄存器中的内容  去决定  数据从哪里来  指令从哪里来

 

posted @ 2020-10-07 16:37  Arthur_hsp  阅读(331)  评论(0编辑  收藏  举报