一条指令对应的两个操作数位数必须一致

汇编指令:
1、mov x,y
传送:y到x
x,y:
寄存器,数据
寄存器,寄存器
寄存器,内存物理地址
内存物理地址,寄存器
内存物理地址,数据
寄存器,内存偏移地址(此时段寄存器默认为ds)
内存偏移地址,寄存器(此时段寄存器默认为ds)
内存偏移地址,数据(此时段寄存器默认为ds)
段寄存器,寄存器
寄存器,段寄存器

2、add x,y
加法:x+y保存于x中
x,y:
寄存器,数据
寄存器,寄存器
寄存器,内存物理地址
内存物理地址,寄存器
内存物理地址,数据
寄存器,内存偏移地址
内存偏移地址,寄存器

3、sub x,y
减法:x-y保存于x中
x,y:
寄存器,数据
寄存器,寄存器
寄存器,内存物理地址
内存物理地址,寄存器
寄存器,内存偏移地址
内存偏移地址,寄存器

4、jmp x
x:
物理地址

5、loop
mov cx n
s:
程序段
loop s(先进行cx-1,再进行判断)
loop指令在cx!=0时,自动跳转到s所指的位置
每次跳转cx自动减1(循环计时器只能是cx)

6、push data/寄存器/物理地址1
将data/寄存器/物理地址1中的数据放入ss:sp中,sp=sp-2

7、pop 物理地址1/寄存器
将ss:sp中数据弹出栈,保存于物理地址1/寄存器,sp=sp+2

8086模式的DOS中debug命令
1、r:查看CPU寄存器的内容

2、d:查看内存中的内容
d 段地址:偏移地址

3、e:改写内存中的内容
e 段地址:偏移地址 x x … x

4、u:将内存中的机器指令翻译为汇编指令
u 段地址:偏移地址

5、t:执行一条机器指令
t 执行CS:IP所指向的指令

6、a:以汇编指令的格式在内存中写入一条机器指令
a 段地址:偏移地址
汇编指令
……
a 后不接物理地址汇编指令默认写入数据指针所指地址

7、p
p 使得程序直接跳转到末尾

8、__ 物理地址(待补充)
功能:使程序无条件跳转至指定物理地址

9、db、dw、dd(伪指令)
在内存中定义一个数据段
db(definite byte):定义的每一个数据大小为1个字节
dw(definite word):定义的每一个数据大小为1个字
dd(definite double word):定义的每一个数据大小为2个字
用法:
xxx segment
上述伪指令:data1,…datan
end xxx

10、div x
除法
x:
reg(通用寄存器)
内存单元
x用于保存除数
被除数y默认保存在 ax(累加器) 或 ax与dx中
y为16位时,y被保存于ax中,最后商保存在al,余数保存在ah
y 为32位时,低位被保存于ax中,高位被保存于dx中(此时x只能是16位) ,最后商保存在ax,余数保存在dx

11、ptr xxx
xxx:
db
dw
dd
一般用于指令没有明确要操作的地址空间的大小(无寄存器时)
ptr xxx接在指令之后,表示即将访问的内存大小为xxx

add [xxxxh],Eh
表明Eh为字节型数据0E

add ptr dw [xxxxh],Eh
表明Eh为字型数据000E

12、xx yy dup (data)
xx为伪指令db、dw、dd
yy为重复次数
data的单个数据占用内存大小由xx决定
例:
name segment
db n dup (4E)
end name
等价于
name segment
db 4E,… ,4E
end name
共n个4E,每个数据占用空间大小为1个字节

8086CPU常见汇编指令、debug命令相关推荐

  1. 处理器startup.s 常见汇编指令,伪指令解释 .globl _start .section .data .text .align

    .section .data 汇编程序中以.开头的名称并不是指令的助记符,不会被翻译成机器指令,而是给汇编器一些特殊指示,称为汇编指示(Assembler Directive)或伪操作(Pseudo- ...

  2. 汇编语言—常见汇编指令汇总

    (1)mov指令 mov    寄存器 ,数据                如:mov ax ,8 mov   寄存器,寄存器              如:mov ax,bx mov   寄存器, ...

  3. arm 32 常见汇编指令解释

    push: 将一个或多个寄存器的值压入栈中,更新栈指针寄存器.语法示例:push {r1, r2, r3}. add: 执行加法并将结果存储到目标操作数中.语法示例:add r1, r2, #5,将寄 ...

  4. 汇编语言之常见的汇编指令

    1.常见汇编指令 1. 传送指令(4个):mov.push.pop.lea. 2. 转移指令(8个):call.jmp.je.jne.jb.jnb.ja.jna. 3. 运算指令(7个):add.su ...

  5. 如何执行一条汇编指令

    在电脑中执行一条指令主要又三个步骤: (1)在指定地址上写入一条汇编指令 (2)使cs寄存器与ip寄存器指向指令所在的地址 (3)开始执行 (1)在指定地址写入一条汇编指令: 终端上常用的命令有:R命 ...

  6. 【汇编语言】理解8086CPU中,不同类型的寄存器和汇编指令规则的联系(会继续更新)

    0 前言 你是否因为汇编指令繁杂的规则而苦恼呢?作者本人也很烦,因为往往教材中只告诉我们规则,却不告诉我们为什么,没有原因就直接记忆,负担太大,后期灵活运用也增添阻力,因此,我经过自己的思考去为你解释 ...

  7. 【实验报告】微处理器原理与应用 CPUHomework1.2 上篇【掌握DEBUG基本命令及其功能 查看CPU和内存 用机器指令和汇编指令编程】

    实验报告 课程名称:微处理器原理与应用 实验名称:CPUHomework1.2 掌握 DEBUG 基本命令及其功能 文章目录 实验报告 [实验目的] [实验要求] 上篇[查看CPU和内存,用机器指令和 ...

  8. 汇编实验:DEBUG命令调试

    目录 实验名称:DEBUG命令调试 一.实验目的及要求 二.实验环境 三.实验内容 四.实验过程 r 命令:查看寄存器的值 2.d 命令查看内存地址之中的数字 4.e命令:把给定的数据送到指定地址开始 ...

  9. windows debug下验证汇编指令中的mov指令传送数据

    一.知识储备 1.8086CPU是16位结构,有16根数据线,20根地址线.16根数据线可以一次性传送16位数据,也就是两个字节(也就是一个字)的数据. 什么是字? 在这个特定计算机中,字是其用来一次 ...

最新文章

  1. Actipro WPF Studio破解
  2. 前端开发面试题总结之——JAVASCRIPT(一)
  3. 采用CreateThread()创建多线程程序
  4. 前端学习(2320):typeScript的概述和安装
  5. java右移位_java 、移位操作方法
  6. asp.net web开发框架_用Python开发一个Web框架
  7. LeetCode--3. 无重复字符的最长子串(双指针)
  8. php 什么是函数式编程,函数式编程的介绍和归纳总结(附代码)
  9. C# 判断字符串为空的4种方法及效率
  10. atitit.MIZIAN 陕北方言 特有词汇 大词典 attilax 整理 a--g v1 q31.xlsx
  11. paip.c++ bcb 字符串String分割split 为 TStringList 不对的的问题解决..
  12. godot读写本地文件
  13. python单位根检验看结果_python做adf检验
  14. 在LINUX下面建立GPRS无线MODEM拨号
  15. j1900做网站服务器,j1900可以跟云服务器
  16. jenkins 日常踩坑 和 瞎扯解决办法
  17. 上瘾读书笔记:让用户养成使用习惯的四大产品逻辑
  18. python爬虫学习笔记一:网络爬虫入门
  19. PDCCH-based WUS signal
  20. PHP人民币小写数字转大写中文

热门文章

  1. C03-Java同步实践加强班第5周上机任务
  2. 究竟什么能使得生活变得圆满?
  3. 转发: Visual Studio 2005常用插件
  4. 【python数据挖掘课程】二十四.KMeans文本聚类分析互动百科语料
  5. 【数据结构与算法】之深入解析“游乐园的迷宫”的求解思路与算法示例
  6. 12.2 全局CSS样式
  7. ALGO-1 区间k大数查询
  8. Maximum Profit Aizu - ALDS1_1_D
  9. 解决安装ROS 时rosdep update 问题(time out)
  10. 【MFC】自绘对话框动画效果的状态栏