• 【笔记】【汇编语言】第3章 寄存器(内存访问)


    3.1 内存中字的存储
      CPU中,用16位寄存器来存储一个字,高8位存放高位字节,低8位存放低位字节。
      由于内存单元是字节单元,则一个字要用两个地址连续的内存单元来存放。低位字节存放在低地址单元中,高位字节存放在高地址单元中。

    3.2 DS和[Address]
      [address] 即 DS:address
      注:8086CPU不支持将数据直接送入段寄存器的操作。
     
    3.3 字的传送
      8086CPU是16位结构,可以一次传送一个字。
     
    3.4 mov,add,sub指令
      mov指令的几种形式
      mov reg,idata
      mov reg,reg
      mov reg,[address]
      mov [address],reg
      mov sreg,reg
      注:add,sub指令也有与mov指令一样的格式
     
    3.5 数据段
      将一段内存当作数据段,是我们在编程时的一种安排,可以在具体操作的时候,用DS存放数据段的段地址,再根据需要,用相关指令访问数据段中的具体单元。
     
    3.6 栈
      一种特殊的存储结构,遵循LIFO或FILO的操作规则。
     
    3.7 CPU提供的栈机制
      8086CPU提供入栈和出栈指令,PUSH和POP。
      CPU中有两个寄存器,SS和SP,SS指示栈的段地址,SP指示栈的偏移地址。  >>>>任意时刻,SS:SP指向栈顶元素<<<<
     
      push reg 操作过程:
      1) SP=SP-2
      2) 将数据送入SS:SP指示的地址
     
      pop reg 的操作过程正好相反:
      1) 从SS:SP指示的地址读取数据
      2) SP=SP+2
     
    3.8 栈顶超界的问题
      8086CPU并没有提供预防栈顶超界的机制,需要我们自己注意。
     
    3.9 push,pop指令
      push/pop reg/sreg/[address]
     
      tips: 清零操作,可以使用"sub ax,ax"指令,大小为2个字节,而使用"mov ax,0"的大小为3个字节
     
    3.10 栈段
      8086CPU中,一个栈段最大的容量为64KB
     
    实验2 用机器指令和汇编指令编程
      略

  • 相关阅读:
    ip报文
    常见端口
    navicat15 破解版
    谷歌跨域设置
    CSS flex弹性布局来做 页面底部自适应:页面高度不足时,在底部显示;页面高度超出时,随页面滚动(亲测有效)
    phpstorm 2019 激活码
    aes cbc模式
    Vue的安装及使用快速入门
    从SVN服务器端彻底删除错误提交版本
    Nginx配置https和wss
  • 原文地址:https://www.cnblogs.com/AzikPhil/p/note_asm2_3.html
Copyright © 2020-2023  润新知