• 汇编笔记(三)


    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相似

  • 相关阅读:
    JMS(面向消息中间件)
    ActiveMQ消息中间件知识汇总
    linux安装mysql常见命令
    结果集耗尽时,检查是否关闭结果集时常用sql
    Spring注解驱动开发之事务概念
    nginx 基础
    HTTP原理
    MYSQL----cmake 数据库出错
    php安装Phalcon模块
    docker报错 Failed to start Docker Application Container Engine.
  • 原文地址:https://www.cnblogs.com/yuelingzhi/p/2400796.html
Copyright © 2020-2023  润新知