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
    等都是错误指令,两个操作对象位数不一致。

    每个人的强大都是从弱小开始慢慢积累起来的!!
  • 相关阅读:
    android stdio 打包
    ASP调用WEBSERVICE并对返回结果进行解析时遇到的问题
    ASP导出数据到excel遇到的一些问题
    HTML + CSS短标题(二,三,四文字长度)两端对齐的方式
    下拉列表被flash覆盖的解决方法
    html加C#上传文件
    实际项目中遇到EF实体类的操作问题及操作方法
    解决ASP.NET上传文件大小限制------(转载人家的博客很好用,略作修改)
    关于ASP.NET MVC的权限认证的一些总结
    Django验证码
  • 原文地址:https://www.cnblogs.com/gaoanchen/p/3307994.html
Copyright © 2011-2022 走看看