- 1、本文档共69页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4 汇编指令系统课件
第四章 汇编语言指令系统;按指令中显示给出的操作数个数进行的分类:
双操作数指令:有两个操作数,分别为源操作数和目的操作数
单操作数指令:如果指令仅需要一个操作数,那么它既是源操作数,又是目的操作数。
无操作数指令:有两种情况,一种是需要操作数,但是是隐含指定的,在指令中没有显示;另一种是指令本身不需要操作数。;8086/8088的指令系统可以分为6组:
⑴ 数据传送指令
⑵ 算术运算指令
⑶ 逻辑指令与移位指令
⑷ 串操作指令
⑸ 控制转移指令
⑹ 处理机控制指令;8086/8088的指令系统的符号约定:
⑴ reg——通用寄存器
⑵ seg——段寄存器
⑶ mem——存储单元
⑷ imm——立即数; 4.1 数据传送指令; 一、MOV —— 数据传送指令
⑴ 指令格式 :MOV OPD,OPS
⑵ 功能:将源操作数OPS送到目的地址中,使目的操作数OPD的内容等于源操作数的内容,源操作数的内容不变。
⑶ 语法格式 ( 7种 )
① MOV reg,reg 寄存器到寄存器
② MOV reg,imm 立即数到寄存器
③ MOV mem,imm 立即数到存储单元
④ MOV reg,mem 存储单元到寄存器
⑤ MOV mem,reg 寄存器到存储单元
⑥ MOV seg,reg(mem) 寄存器(存储单元)到段寄存器
⑦ MOV reg(mem),seg 段寄存器到寄存器(存储单元);⑷ 说明:
① 指令不允许两个操作数同时为段寄存器。
MOV seg , seg 例: MOV DS , SS
② 指令不允许两个操作数同时为存储单元。如果要实现两个内存单元间的数据传送,必须通过两条数据传送指令来实现,必须通过寄存器作数据传送中转。
MOV mem ,mem 例: MOV BUF2 , BUF1;③立即数不能传送到段寄存器中。
MOV seg ,imm
例: MOV DS , 0347H
④ 不能使用此指令为代码段寄存器CS以及指令指针IP赋值;即目的操作数不允许使用CS段寄存器和IP,但其可以作源操作数 。
⑤ 源操作数与目的操作数必须类型匹配。即指令源、目标操作数长度必须一致,两者同为8位或16位。
⑥ 16位数据的传送遵循地址“高对高,低对低”的原则。这个原则不仅对MOV指令适用,对所有的传送皆适用。;例①:判断下面指令的正误
① MOV AX,BL
② MOV DS,1000H
③ MOV [BX] ,[SI]
④ MOV ES,CS
⑤ MOV CS,AX; 例②: 将DS段中2000H单元与3000H单元中的字节内容互换,请写出指令序列。 ;二、XCHG ——交换指令
⑴ 指令格式:XCHG OPD , OPS
⑵ 功能:交换OPD与OPS的内容,指令中的操作数既可以是字,也可以是字节,并且OPD与OPS前后的关系无关紧要。
⑶ 注意
① XCHG指令的两个操作数必须有一个在寄存器中;不允许同时对两个内存单元进行操作
如:XCHG [2000H],[2100H]
② XCHG交换指令不影响标志位寄存器FLAGS的值。;例①:用交换指令实现两个字型内存单元NUM1、NUM2之间的数据交换
例②: 如指令执行前:(BX)=6F30H,(BP)=0200H,(SI)=0046H,(SS)=2F00H,(2F246H)=4254H,
则执行指令:XCHG BX ,[BP+SI]后结果如何;三、换码指令
指令格式: XLAT 或 XLAT OPS
功能:将寄存器BX的内容作为表的首地址(每项一字节),将寄存器AL的内容作为表的下标,然后取出表项内容送入AL寄存器。;四、地址传送指令
将操作数所在存储器的地址送入目的寄存器。
⑴ LEA —— 偏移地址送寄存器指令
① 指令格式: LEA OPD,OPS
②说明
OPS可以是变量名、标号或地址表达式,但必须是内存操作数
OPD可以为任一16位通用寄存器,因为有效地址是一个16位的无符号二进
文档评论(0)