📒
Notes
  • 个人笔记
  • Machine Learning
    • Tensorflow
      • Text
        • Keras构建RNN
        • 字词嵌入
        • 字词嵌入示例程序
      • Data processing
        • tf.data数据加载
      • Tensorflow Tricks
    • 循环神经网络概览
    • Pix2Pix
  • Assembly Language
    • DOS中的Debug模式
    • LOOP指令
    • 8086CPU
    • 标志位寄存器
    • 汇编指令
    • 汇编语言源程序格式
  • Linux System
    • Systemctl 服务脚本
    • Linux端口占用
    • Btrfs文件系统
    • C Socket网络编程细节问题
  • Hexo
    • Hexo下的Tag/Categories栏
    • Git备份博客
    • Hexo博客基本部署
  • Kernel
    • C语言中消息队列实现
    • Linux内核的进程调度函数
    • Linux内核模块的编译
    • Linux Kernel概述
  • Linux Software
    • Linux软件安装与配置
  • Docker
    • OVS+Docker网络构建
    • Docker分层垃圾清理
  • C
    • CMakeList语法
Powered by GitBook
On this page
  • MOV
  • PUSH POP
  • INC/DEC
  • 其他编程注意点

Was this helpful?

  1. Assembly Language

汇编指令

一些汇编指令的概述。

MOV

  1. MOV 寄存器,数据

  2. MOV 寄存器,寄存器

  3. MOV 寄存器,内存单元(偏移地址)

  4. MOV 内存单元(偏移地址),寄存器

在3和4中,仅提供构成地址的偏移地址,而段地址自动从寄存器DS中获得。

数据不能直接MOV到SS, DS等段寄存器中,需要使用通用寄存器进行中转。 这样做是一个设计问题,至于原因有各种猜测,比较可能的一个是为了节省指令空间。

PUSH POP

8086CPU的入栈和出栈操作都是以字为单位进行,在存放的时候需要两个储存单元。由于栈是从高位地址向地位生成,所以高位地址存放高8位,地位地址存放低8位。 栈顶由SS:SP构成的地址决定,指向的位置是有数据的(先+2再PUSH数据)。在8086中不对栈顶越界进行任何的判断和处理,对于栈空间的管控要自己做。 注意后进先出(LIFO)的特性。

命令主要形式: 1. PUSH/POP 寄存器 2. PUSH/POP 段寄存器 3. PUSH/POP 内存单元(偏移地址)

注意:对内存单元进行操作的时候,还是以字为单位进行的。 PUSH/POP等栈操作改变的只是SP,因此栈的最大变化范围为0~FFFFH

INC/DEC

INC/DEC为加1/减一指令,用来实现自增和自减操作。

其他编程注意点

  • 在汇编原程序中,数据不能以字母开头,不然在前面补充一个0。

Previous标志位寄存器Next汇编语言源程序格式

Last updated 5 years ago

Was this helpful?