zoukankan      html  css  js  c++  java
  • [转]汇编语言之寄存器使用(bx,si,di,bp)

    from:http://www.cnblogs.com/huzhongzhong/archive/2011/08/01/2123743.html

    这里对这几个寄存器总结一下。

    通用寄存器的主要用途

    寄存器的分类 寄存器

    主 要 用 途

    数据

     

    寄存器

    AX

    乘、除运算,字的输入输出,中间结果的缓存

    AL

    字节的乘、除运算,字节的输入输出,十进制算术运算

    AH

    字节的乘、除运算,存放中断的功能号

    BX

    存储器指针

    CX

    串操作、循环控制的计数器

    CL

    移位操作的计数器

    DX

    字的乘、除运算,间接的输入输出

    变址
    寄存器
    SI

    存储器指针、串指令中的源操作数指针

    DI

    存储器指针、串指令中的目的操作数指针

    变址
    寄存器
    BP

    存储器指针、存取堆栈的指针

    SP

    堆栈的栈顶指针

    指令指针

    IP/EIP  
    标志位寄存器 Flag/EFlag  
    32位

    CPU的

    段寄存器

    16位CPU的

    段寄存器

    ES  附加段寄存器
    CS  代码段寄存器
    SS  堆栈段寄存器
    DS  数据段寄存器
    新增加的
    段寄存器
    FS  附加段寄存器
    GS  附加段寄存器
    这张表用来参照。
    (1)在8086CPU中只有这四个寄存器可以在[...]中进行内存单元的寻址。
    比如,下面的指令都是正确的:
    mov ax,[bx]
    mov ax,[bx+si]
    mov ax,[bx+di]
    mov ax,[bp]
    mov ax,[bp+si]
    mov ax,[bp+di]
    而下面都是错误的:
    mov ax,[cx]
    mov ax,[ax]
    mov ax,[dx]
    mov ax,[ds]
    (2).在[...]中,这四个寄存器可以单独出现,或者只能以四种组合出现:bx和si、bx和di、bp和si、bp和di。
    比如下面都是正确的
    mov ax,[bx]
    mov ax,[si]
    mov ax,[di]
    mov ax,[bp]
    mov ax,[bx+si]
    mov ax,[bx+di]
    mov ax,[bp+si]
    mpv ax,[bp+di]
    mov ax,[bx+si+idata]
    mov ax,[bx+si+idata]
    mov ax,[bp+si+idata]
    mov ax,[bp+di+idata]
    下面就是错误的
    mov ax,[bx+bp]
    mov ax,[si+di]
    (3)只要在[....]中使用寄存器bp,而指令汇总没有显示给出段地址,段地址就默认在ss中。 比如下面的指令。
    mov ax,[bp] 含义:(ax)=((ss)*16+(bp))
    mov ax,[bp+idata] 含义:(ax)=((ss)*16+(bp)+idata)
    mov ax,[bp+si] 含义:(ax)=((ss)*16+(bp)+(si))
    mov ax,[bp+si+idata] 含义:(ax)=((ss)*16+(bp)+(si)+idata)
  • 相关阅读:
    小波变换的引入,通俗易懂
    Leetcode 437. Path Sum III
    Leetcode 113. Path Sum II
    Leetcode 112 Path Sum
    Leetcode 520 Detect Capital
    Leetcode 443 String Compression
    Leetcode 38 Count and Say
    python中的生成器(generator)总结
    python的random模块及加权随机算法的python实现
    leetcode 24. Swap Nodes in Pairs(链表)
  • 原文地址:https://www.cnblogs.com/wucg/p/2320582.html
Copyright © 2011-2022 走看看