• 检测点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:【偏移地址】 读取  当作数据

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

  • 相关阅读:
    在Pycharm中使用GitHub
    Ubuntu20.04开启root账户的方法步骤
    使用git push文件到gitee
    Dell主机安装win10+Ubuntu20.04双系统
    Golang select 基础语法与用法
    Golang websocket 实现消息推送
    Golang + gRPC 实践
    Golang实现RPC
    unigui+fastReport实现web打印方案(43)
    [控件] 加强版 TOneSelection (改良自 Berlin 10.1 TSelection)
  • 原文地址:https://www.cnblogs.com/hsp1269/p/13777869.html
Copyright © 2020-2023  润新知