zoukankan      html  css  js  c++  java
  • 汇编笔记(三)

    2012/3/15 15-20

    (1)mov的形式
     mov 段寄存器,寄存器  ds,ax
         mov 寄存器,数据      ax,2
            mov 寄存器,寄存器    ax,bx
     mov 寄存器,内存单元  ax,[0]
     mov 内存单元,寄存器  [0],ax
     mov 寄存器,段寄存器

    (2)add和sub如mov一样

    (3)将123b0h—123bah的内存定义为数据段,累加数据段的前三个单元的数据
         代码:
     mov ax,123bh
     mov ds,ax
     mov al,0     //al的初始化
     add al,[0]
     add al,[1]
     add al,[2]
         将123b0h—123bah的内存定义为数据段,累加数据段的前三个字型的数据
         代码:
     mov ax,123bh
     mov ds,ax
     mov ax,0(或者是mov ax,1000:0)
     add ax,[0]
     add ax,[2]
     add ax,[4]

    (4)栈
     段寄存器ss 存放栈顶的段地址
     寄存器sp 存放栈顶的偏移地址
     任意时刻,ss:sp指向栈顶元素
     
     PUSH ax
     为SP=SP-2;
     将ax送入栈顶ss:sp

     POP ax
     将ax送入栈顶ss:sp
     为SP=SP+2;
     
     
     把10000h—1000fh为初始栈的时候ss=1000h sp=000eh
     当sp=0010h时栈为空

    (5)栈溢出
     会导致其他用途的数据,代码破坏
     解决方法:在cpu中有记录上下限的寄存器,可以通过寄存器指定栈的空间的
     范围,然后执行push时靠栈顶上限寄存器,pop时则靠栈顶下限寄存器
     注意释放内存

    (6)栈与内存
     栈是内存的一部分,
     push和pop操作和mov相似

  • 相关阅读:
    systick运用
    stm32的systick原理与应用
    PID算法知识点博文收藏记录
    关于STM32驱动DS1302实时时钟的一点思考
    什么是同步?什么是互斥?
    C语言小笔记(1)
    typedef 复杂函数指针
    获取窗口句柄
    GetWindowRect和GetClientRect的区别详解
    RepositionBars的用法和参数的意义(引用别人的)
  • 原文地址:https://www.cnblogs.com/yuelingzhi/p/2400796.html
Copyright © 2011-2022 走看看