zoukankan      html  css  js  c++  java
  • 第三课 物理地址和几条汇编指令

    8086采用一种在内部用两个16位地址合成的方法形成一个20为物理地址
    一个称为段地址,另一个称为偏移地址
    段地址和偏移地址通过内部总线送入一个称为地址加法器的部件
    地址加法器将两个16位地址合成为一个20位的物理地址
    地址加法器通过内部总线将20位物理地址送上地址总线
    20位物理地址被地址总线传送到存储器

    地址加法器规则 物理地址=段地址*16+偏移地址 合成物理地址
    基础地址=段地址*16 相当于2进制地址左移四位 16进制地址左移一位

    段寄存器
    8086有4个段寄存器:cs,ds,ss,es
    当cpu访问内存时由这四个段寄存器提供内存单元的段地址

    cs和ip是8086cpu最关键的两个寄存器,他们指示cpu当前要读指令的地址。
    cs为代码段地址,ip为指令指针寄存器。

    cs:ip指向的内容当做指令执行。

    jmp可以修改cs ip
    jmp ax 指向前 ax =1000H,cs=2000H ip=0003H
    执行后 cs=2000H ip=1000H、
    用寄存器中的值修改ip

    mov ax,18  将18送入寄存器AX                 AX = 18
    mov ah,78   将78送入寄存器AH                AH=78
    add ax,8     将寄存器AX中的数值加上8        AX =AX+8
    mov ax,bx    将寄存器BX中的数据送入寄存器AX AX=BX
    add ax,bx    将AX和BX中的数值相加,结果存入 AX AX=AX+BX

    ax等同于AX不分大小写

    对寄存器中的数据进行改变
    刚开始AX BX 中的值为0000H
                      AX   BX
    mov ax,4E20H    4E20H 0000H
    add ax,1406H    6226H 0000H
    mov bx,2000H    6226H 2000H
    add ax,bx       8226H 2000H
    mov bx,ax       8226H 8226H
    add ax,bx       ?     8226H
    最后数据相加后为1044CH高位1不能再ax中保存 ax数据位044CH

    在进行数据传送或运算时,要注意指令的两个操作对象的位数应当是一致的
    mov ax,bx
    mov bx,ax
    mov ax,18H
    mov al,18H
    add ax,bx
    add ax,20000
    等都是正确指令

    mov ax,bl
    mov bh,ax
    mov al,20000
    mov al,100H
    等都是错误指令,两个操作对象位数不一致。

    每个人的强大都是从弱小开始慢慢积累起来的!!
  • 相关阅读:
    ssm框架配置文件
    接口调用post请求参数在body中
    mysql三种连接方式
    jwt认证登录
    JWT工具类
    token的创建及解析
    IIS目录
    C# 增加多个分部类
    计算机知识
    Kibana 的安装(Windows版本)
  • 原文地址:https://www.cnblogs.com/gaoanchen/p/3307994.html
Copyright © 2011-2022 走看看