汇编第3章 80X86指令系统和寻址方式

3.1 8086指令系统概述

3.1.1汇编指令

汇编指令由操作码和操作数组成,操作码是指令的操作命令,操作数是指令的操作对象。

指令格式:标号: 指令助记符 操作数1 ,\[操作数2 ,\[操作数3]] ;注释

标号:在汇编语言中标号是由用户定义的符号名,用来标记位置。标号可以是任意的字符串但是通常由字符和数字组成。(来自百度文库

MOV <目的操作数><源操作数>

使用源操作数为目的操作数赋值

伪指令没有对应的机器指令。不能用寄存器

标识符:

存储单元的有效地址

不可以用数字开头,不可以用BX、AX、?之类

伪指令

【变量名】助记符 操作数 ;注释

DB(1单元,字节) DW(2) DD(4单元、双字)

3.2 寻址方式

3.2.1 数据寻址方式

80X86的操作数来自以下三个方面:

1、操作数包含在指令当中,这样的操作数叫做立即数。

2、操作数包含在存储器当中,这样的操作数叫做存储器操作数。

3、操作数包含在某个寄存器当中,这样的操作数叫做寄存器操作数。

8086存储器的实际地址由段基地址和偏移地址决定,段基址由段寄存器提供,偏移地址由以下四个基本单位组成:

1、基址,基址寄存器为BX和BP。

2、变址,变址寄存器为SI和DI。

3、比例因子,8086系统比例因子为1.

4、位移量,即相对某个单元的偏移量。

有效地址(EA)=基址+变址*比例因子+位移量

九种寻址方式详见:CSDN

3.2.2 8086\8088常用指令

MOV指令

功能:传送操作数

1、MOV指令可以传8位数据,也可以传16位数据。

2、不允许用MOV实现两个单元间的数据传输。

3、不能用CS和IP作为目标操作数,

4、不允许在段寄存器之间传输数据。

5、不能向段寄存器传输立即数

LEA指令

LEA指令是将有效地址送往通用寄存器。

复制代码
LEA BX,[1000]; BX的值是1000
LEA bx,[si][bp];bx的值是si+bp的偏移地址
相关推荐
浪子明X6 小时前
十六位账本怎样发现传输差错:Internet Checksum 生活类比
开发语言
尾善爱看海6 小时前
Vue 面试收官篇:SSR、性能优化落地、30 道高频面试题精讲(附标准答案)
前端·javascript·vue.js·面试·vue
v_34836087626 小时前
Android native端 堆栈打印
android·算法
residual_fan6 小时前
【学术论文】航空发动机故障诊断智能体:基于持续对比强化学习的动态优化方法
人工智能·算法·数据挖掘·数据分析
GreenTea7 小时前
OpenAI Agents API 上手实测:一次调用把整个 agent loop 甩给 OpenAI
前端·后端·算法
深圳满意度咨询8 小时前
医院满意度数字化测评系统:从数据采集到智能决策的技术实践
算法
xiangyun619 小时前
【408数据结构 08】队列:循环队列判空判满,408年年考,一次讲清
c语言·开发语言·数据结构·c++·算法
xiangyun619 小时前
【408数据结构 06】双链表、循环链表、静态链表
c语言·开发语言·数据结构·c++·算法
白远山10 小时前
家政服务家政社区派单实战:调度系统架构设计与实现指南
java·开发语言·小程序·架构·需求分析
302wanger11 小时前
推荐下我的两个AI信息源
算法