• UNIT TWO


    声明

    基于8086的寄存器共14个16位的,分别是

    ax  bx  cx  dx  (通用寄存器)

    si  di  bp  sp    (基址与变址寄存器)

    cs  ss  ds  es   (段寄存器)

    ip flags              (指令指针和标志寄存器)

    常用的是第一排、第三排

    附:

    AX Accumulator Register
    BX Base Register
    CX Count Register
    DX Data Register
    CS Code Segment Register
    IP Instruction Pointer Register

    通用寄存器

    如ax,bx,cx,dx寄存器,通常用于存放一般数据,称为通用寄存器。

    为了与早期CPU操作兼容,这4个寄存器均可拆分成两个8位寄存器单独使用。

    AX分为AH和AL
    BX分为BH和BL
    CX分为CH和CL
    DX分为DH和DL

    而AH和AL可以作为两个八位寄存器单独使用。 

    字在寄存器中的存放

    字节  内存划分的基本单位
    字   两个字节
    双字  四个字节
    四字  八个字节

    汇编指令mov add

    注意事项

    1.在mov和add指令中,两个操作对象的位数应一致

    2.运算时超出寄存器表示的位数时,进位大的1不显示

    2的示例:

    8086表示物理地址的方法

    段地址  × 16  + 偏移地址  =  物理地址

    *根据需要,段的起始物理地址必须是16的倍数

    CS与IP

    CS: 代码段段寄存器,用于存放代码段的「段地址」
    IP: 指令指针寄存器,用于存放CPU将要读取的指令在代码段中的偏移地址
    CS:IP对应的物理地址存放的是CPU将要读取的指令。
    (CS) × 16 + (IP) → 指令的物理地址

    JMP指令:修改CS与IP

    1.同时修改cs ip

    jmp   段地址: 偏移地址

    例:
    jmp 2AE3:3 ; CS ← 2AE3H
    IP ← 3H

    2.只修改ip

    jmp   某一合法寄存器

    例:
    jmp AX ; IP ← AX

  • 相关阅读:
    WebSocket面试题
    面试题、四
    面试题、三
    面试题、二
    面试题、一
    vue 使用localstorage实现面包屑
    flutter,SliverPersistentHeader实现Tab顶部吸附固定效果
    对flutter中,ExpsionPanel的简单改造
    node.js学习笔记
    PHP和Redis实现在高并发下的抢购及秒杀功能示例详解
  • 原文地址:https://www.cnblogs.com/zc-de-blog/p/10163189.html
Copyright © 2020-2023  润新知