- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编学习笔记之8086指令集
8086/8088 指令系统
一 .分组
1. 数据传送指令
2. 算数运算指令
3. 逻辑运算指令
4. 串操作指令
5. 程序控制指令
6. 处理器控制指令
数据传送指令
1. 传送指令 mov
(1)CPU 内部的寄存器之间的数据传送 例如
mov AH,AL
MOV DL,BH
MOV AX,CS
注意: 寄存器之间传送的寄存器不能同时为段寄存器; 代码段寄存器不能作为目的;指令指针IP既不能作为源,也不能作为Direction
(2) 立即数送入通用寄存器或内存单元 例如
MOV AL,3
MOV SI,-5
MOV VARB, -2 ; VARB是变量名,代表一个内存单元
MOV VARW ,3456H ; VARW是一个字变量
MOV [SI] ,6543H
注意:立即数不能直接送入到段寄存器,立即数永远不能作为目的操作数
(3)寄存器与内存单元之间的数据传送
MOV AX,VARW ;VARW是一个字变量,存储器操作为直接寻址
MOV BH,[DI]; 内存操作数为寄存器间接寻址
MOV DI,ES:[SI+3];内存操作数为相对变址寻址,使用段超越前缀
MOV BP,[BX+SI+3];内存操作数为相对基址加变址寻址
MOV VARB,DL; VARB是一个字变量
MOV [BP],AX 使用SS 段寄存器
MOV DS:[BP],DL; 使用段超越前缀
MOV VARW,DS; VARW是一个字变量
MOV ES,VARW
注意: 除了串操作指令外,源操作数和目的操作数不能同时为内存单元操作数
2 交换指令
实现通用寄存器与通用寄存器或内存单元的数据交换
XCHG OPRD1,OPRD2
OPRD1 与 OPRD2可以是通用寄存器和内存单元,但不包括段寄存器,也不能同时为内存单元,还不能有立即操作数.
3 地址传送指令
(1) LEA (Load Effective Address)
LEA 有效传送地址指令 格式如下:
LEA REG , OPRD
该指令把OPRD操作数的地址传送到操作数REG里,操作数OPRD必须是一个内容单元操作数,REG必须是一个16位的通用寄存器.例如
LEA AX,BUFFER ;BUFFER 是变量名
LEA DX,[BX+3]
LEA SI,[BP+DI+4]
(2) LDS (Load pointer into DS)
段值和段内偏移构成32位的地址指针,该指令传送32位地址指针,格式如下
LDS REG , OPRD
该指令把操作数OPRD中所含的32位地址指针的段值部分送到数据段寄存器(DS),把偏移部分的地址送到指令给出的通用寄存器REG,操作数OPRD必须是一个32位的内存单元操作数,操作数REG可以是一个16位的通用寄存器,但实际使用的往往是变址寄存器或指针寄存器.例如
LDS DI,[BX]
LDS SI,FARPOINTER ;FARPOINTER 是一个双字变量
32位地址的段值部分存储在FARPOINTER的高地址中,段偏移部分存储在FARPOINTER的低地址中.
(3) LES( Load pointer to ES)
LES REG , OPRD
32位地址的段值部分送入寄存器ES,段偏移部分送入REG
4 . 堆栈操作指令 (栈底端地址较大,栈顶端地址较小)
(1) 进栈指令 PUSH
PUSH SRC
源操作数SRC 可以是通用寄存器和段寄存器和内存字单元
操作流程:
先把堆栈指针寄存器SP的值减2
把操作数SRC送入SP所指的栈顶
(2) 出栈指令
POP DST
先把堆栈指针寄存器SP所指的字数据送至操作和数DST
SP 值加2
注意: 操作数DST可以是通用寄存器和段寄存器,但CS例外.也可以是字存储单元
5. 标志操作指令
(1) LAHF (Load AH with Flags)
该指令把标志寄存器的低8位传送到寄存器AH的指定位
注意:该指令本身不影响这些标志和其他标志
(2) SAHF ( Store AH into Flags)
该指令把寄存器AH的指定位送至标志寄存器的低8位的SF,ZF,AF,PF,CF标志位
(3) PUSHF
该指令把标志寄存器的内容压入堆栈,即先把堆栈指针寄存器的值减2,然后把标志寄存器的内容送入由SP所指的堆栈
(4) POPF
该指令把当前堆栈的栈顶的一个字传送到标志寄存器,同时相应的修改堆栈指针SP,SP=SP+2
(5) 清进位标志指令 CLC(CLear Carry flag)
格式 : CLC
该指令 使进位标
您可能关注的文档
- 水吧工作人员工作流程及服务标准.docx
- 水压表选型实例.doc
- 水回用再生指导书.doc
- 水合肼设计任务书.doc
- 水土保持复习要点黑龙江大学.doc
- 水吼职中优秀教师先进事迹报告材料.doc
- 水墨画-小猫咪步骤.doc
- 水处理常用换算公式.doc
- 水处理复习提纲.docx
- 水处理设备总装过程作业指导书1.doc
- 2024年中国钽材市场调查研究报告.docx
- 2024年中国不锈钢清洗车市场调查研究报告.docx
- 2024年中国分类垃圾箱市场调查研究报告.docx
- 2024年中国水气电磁阀市场调查研究报告.docx
- 2024年中国绿藻片市场调查研究报告.docx
- 2010-2023历年初中毕业升学考试(青海西宁卷)数学(带解析).docx
- 2010-2023历年福建厦门高一下学期质量检测地理卷.docx
- 2010-2023历年初中数学单元提优测试卷公式法(带解析).docx
- 2010-2023历年初中毕业升学考试(山东德州卷)化学(带解析).docx
- 2010-2023历年初中毕业升学考试(四川省泸州卷)化学(带解析).docx
文档评论(0)