- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一,数据传送指令(14条):
1,通用传送指令(5条):
a.基本传送指令MOV
指令格式:MOV dest,src;(dest)-(src)
注意事项:1,操作数类型必须匹配。2,存储单元之间不能用MOV直接传送。3,CS和IP不能作为目的操作数,CS可作为源操作数。4,立即数不做目的操作数。5,不能用立即寻址方式给段寄存器传数。6,段寄存器之间不能用MOV。
7,高位在高地址,低位在低地址。
b.数据交换指令XCHG
指令格式:XCHG dest,src;(dest)-(src)
注意事项:1,操作数各自均可是寄存器或存储器,但二者不能同时为存储器操作数。2,段寄存器内容不能参加交换。
c.堆栈操作指令:
进栈PUSH
指令格式:PUSH src
出栈POP
指令格式:POP dest
注意事项:1,栈操作都是按字进行的,没有字节的栈操作。2,CS的值可以入栈,但不能从堆栈中弹出一个字到CS中。3,堆栈操作中,有一个操作数是隐含的,SP指示的栈顶存储单元。
d.查表转换指令XLAT
指令格式:XLAT src-table
指令功能:XLAT指令是字节的查表转换指令,可以根据表中的元素的序号查出表中相应元素的内容。具体操作是:(AL)-((BX)+(AL))。
注意事项:BS寄存器中包含着表的首地址,所在的段由隐含值确定。但也允许重新设定其他段(段超越),此时此时必须在指令中写明重设的段寄存器。
2,输入输出指令(2条):
a.输入指令IN
指令格式:IN ac,port
指令功能:从一个端口输入一个字节或一个字到累加器(ac)。输入端口可以用一个8位立即数表示,此时最多允许寻址256个端口。同时,端口地址也可以放在16位寄存器DX中,则端口总数可以达到64K。
b.输出指令OUT
指令格式:OUT port,ac
注意事项:1,无论接受或发送的数据都必须放在累加器AX或AL中,这是两条累加器专用指令。2,在使用间接端口寻址时,应先把端口地址赋给DX寄存器,而且必须是DX寄存器。
3,地址传送指令(3条):
a.取有效地址指令LEA
指令格式:LEA reg,src
指令功能:把源操作数(必须为存储器操作数)的16位偏移地址(有效地址)传送到一个目的地址reg指定的16位通用寄存器中。
注意事项:LEA传递的是存储单元的地址,而MOV传送的是存储单元里的内容。
b.指针送寄存器和DS的指令LDS
指令格式:LDS reg,src
指令功能:LDS是取某存储单元的32位地址指针的指令,它是从由指令的源操作数src(必须是存储器操作数)所指定的存储单元开始,由4个连续存储单元中取出4个字节,将前两个字节(某存储单元的偏移地址)传送到指令的目的操作数reg所指定的16位通用寄存器中,后两个字节(某存储单元的段基地址)传送到DS段寄存器。
c.指针送寄存器和ES的指令LES
指针格式:LES reg,src
指针功能:后两个字节单元的内容装入到ES寄存器,其余和LDS一样。
4,标志位传送指令(4条):
a.取标志位指令LAHF
指令格式:LAHF
指令功能:把标志寄存器的低8位传给AH寄存器,即把SF.ZF.AF.PF.CF标志位分别传送到AH的第7.6.4.2.0位,AH的第5.3.1位为任意值。
对标志位的影响:均无影响。
b.存标志位指令SAHF
指令格式:SAHF
指令功能:SAHF指令的传送方向和LAHF相反,将AH寄存器中的第7.6.4.2.0位分别传送到标志寄存器的对应位。
对标志位的影响:标志寄存器中的SF.ZF.AF.PF.CF将被修改位AH寄存器对应位的状态,但其余标志位OF.DF.IF.TF不受影响。
c.标志位进栈指令PUSHF
指令格式:PUSHF
指令功能:将16位标志寄存器的内容入栈保护。
d.标志位出栈指令POPF
指令格式:POPF
指令功能:POPF将栈内栈顶字单元的内容弹出到标志位寄存器中。
二,算术运算指令(20条):
1.加法指令(3条):
a.
文档评论(0)