- 1、本文档共48页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
80x86的指令系统和训陌址方式
编程工具;第3章 80x86的指令系统和寻址方式;3.1 程序语言简介
(1) 指令、指令系统和程序
(2) 机器码和机器语言
(3) 助记符和汇编语言
(4) 高级语言
(5) 8086/8088指令格式简介; CPU是一个可以完成一些基本操作的电子器件。
用编码表示CPU的一个基本操作,称为一条指令。
全部指令集称为指令系统。
;
程序是为要解决的问题编写出来的指令集合;(2) 机器码和机器语言
;例 将地址为2000H和2001H 的两内存单元内容相加,
结果存在地址2002H单元中,程序如下:
A0 00 20
02 06 01 20
A2 02 20;(3) 助记符和汇编语言
;上例 将地址为2000H和2001H 的两内存单元内容相加,
结果存在地址2002H单元中。; 汇编语言和机器语言编写的程序:
面向机器,反映机器运行的实际过程,
与计算机的硬件结构和指令系统密切相关
算法是用计算机的指令, 寄存器等描述,
要了解CPU的编程??构、寻址方式、指令系统才能设计程序
占内存少,执行速度快
编写繁琐、调试困难;(4) 高级语言
高级语言是独立于机器、面向过程或对象的语言。
算法是按照人的思维方式给出,比较接近人的自然语言。
上例 高级语言程序段为:
var3 = var1 + var2
由翻译程序将高级语言源程序翻译目标程序,
即用机器码表示的程序,机器才能执行。
(不同类型机器由于指令系统不同,它们的编译程序不同)
Fortran、 Basic、 C等均是高级语言。
使用高级语言编程,效率高,可读性、可移植性强。;(1) 操作码
指明CPU要执行什么样的操作。
是一条指令必不可少的部分,用助记符表示。; 操作数来源 指明操作数所在的地方; 操作数个数
按指令格式中,操作数个数的多少分为四类:
无操作数: 指令只有一个操作码,没有操作数
单操作数: 指令中给出一个操作数
双操作数: 指令中给出两个操作数。
三操作数:指令中给出两个操作数。;① 无操作数: 指令只有一个操作码,没有操作数。;② 单操作数: 指令中给出一个操作数。;③ 双操作数: 指令中给出两个操作数。
如 ADD AL , BL ;(AL) ← (AL) + (BL)
目的操作数 源操作数
操作后的结果通常存放在目的操作数中。 ;④ 三操作数: 指令中给出三个操作数。
如 IMUL BX, DX, 6 ;(BX) ← (DX) *6
目的操作数 源操作数 立即数
操作后的结果通常存放在目的操作数中。
;一地址指令: INC AX
DEC CX
二地址指令: MOV AX, [2000H]
ADD AH, BL
三地址指令: IMUL BX,DX,7;3.2 80x86的寻址方式;3.2.1 与数据有关的寻址方式
以 MOV 指令为例 ;
2. 寄存器寻址方式* —— 操作数在指定的寄存器中
MOV AX, BX
MOV AL, BH
* 字节寄存器只有 AH AL BH BL CH CL DH DL
* SRC 和 DST的字长一致 ? MOV AH, BX
* CS不能用MOV指令改变 ? MOV CS, AX;存储器寻址(除代码段)
四种成分的组合;四种成分;默认段选择规则;段跨越前缀
用于改变系统所指定的默认段选择规则;访问存储器的方式;3. 直接寻址方式* —— 有效地址EA由指令直接给出
有效地址EA:操作数的偏移地址
物理地址PA = 16d ? (DS) + EA
例:MOV AX, [2000H]
EA=2000H, 假设(DS)=3000H, 那么(PA)=32000H
例:操作数地址可由变量(符号地址)表示
MOV AH, VALUE ( VALUE DB 10 );3. 直接寻址方式*
* 隐含的段为数据段 DS
* 可使用段跨越前缀
MOV A
文档评论(0)