第3部分 常用指令和寻址方式 - 副本.ppt

第3部分 常用指令和寻址方式 - 副本.ppt

ID:49052611

大小:204.00 KB

页数:58页

时间:2020-01-30

第3部分 常用指令和寻址方式 - 副本.ppt_第1页
第3部分 常用指令和寻址方式 - 副本.ppt_第2页
第3部分 常用指令和寻址方式 - 副本.ppt_第3页
第3部分 常用指令和寻址方式 - 副本.ppt_第4页
第3部分 常用指令和寻址方式 - 副本.ppt_第5页
资源描述:

《第3部分 常用指令和寻址方式 - 副本.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第3部分常用指令和寻址方式AssemblyLanguageProgramming1常用基本操作AssemblyLanguageProgramming=伪操作格式:名称=表达式赋值操作将表达式的数值指派给名称表达式一定为数值名称的值可被多次指派例如:MAXINT=7FFFHCOUNT=1COUNT=COUNT*2EQU伪操作格式:名称EQU表达式利用名称替代表达式表达式可以为数值,也可为字符串使用<>代表字符串一旦赋值完成,不能再次改变举例:SampleEQU7FhaStringEQU<1.234>messageEQUMPYEQUMUL'利用MPY替代MU

2、L指令注意EQU伪操作中的表达式名是不允许重复定义的,而=伪操作则允许重复定义。上述两个伪操作和数据定义DB/DW/DD等不同之处,主要体现在:EQU和=不分配内存空间,仅仅定义了数据,编译时用定义的数据替换标识符数据定义伪指令DB/DW/DD分配相应的内存空间通用数据传输指令传送指令MOV数据交换指令XCHG地址偏移量加载LEAMOV指令MOVtarget,sourcereg,regmem,regreg,memmem,immedreg,immed存储器操作数之间不能相互传值两个操作数的类型须一致段寄存器和立即数之间不能相互传值CS不能作为目标寄存器使用合法指令举例寄存器传送MOVED

3、X,ECXMOVES,AXMOVBYTEFLD,AHMOV[DI],BX立即数传送MOVCX,40HMOVBYTEFLD,25HMOVWORDFLD[BX],16H直接存储器传送MOVCH,BYTEFLDMOVCX,WORDFLD[BX]段寄存器传送MOVAX,DSMOVWORDFLD,DS非法MOV指令MOVDL,WORD_VALMOVDX,BYTE_VAL注:PTR的使用MOVDL,WORDPTRWORD_VALMOVDX,BYTEPTPBYTE_VALMOVBYTE_VAL1,BYTE_VAL2'存储器之间不能之间传送MOVES,23'立即数到段寄存器不能直接传送MOVES,DS

4、‘段寄存器间不能传送MOVCS,23交换数据指令XCHGXCHGtarget,sourcereg,regreg,memmem,regMOV和XCHG不能执行存储器之间的数据传送交换数据操作的有效方法不需临时的空间排序经常需要此操作ItworksonlywiththegeneralregistersAX,BX,CX,DXBP,SI,DI,SPSEG格式:SEG变量名或者标号例如MOVAX,SEGK1MOVAX,SEGDATAXOFFSET和LEA指令OFFSET操作符取偏移量MOVBX,OFFSETDATA1LEA利用偏移量初始化寄存器BX,SI,DI等,为的是指向存储器的一个地址举例D

5、ATA1DB25DUP(?)DATA2DB?……LEABX,DATA1'装入偏移地址MOVDATA2,[BX]'传送DATA1的第一个字节数据等效的指令LEABX,DATA1‘装入偏移地址MOVBX,DATA1LDS和LESLDSREG,SRC执行的操作:(REG)(SRC)(DS)(SRC+2)把源操作数指定的4个相继字节送到由指令指定的寄存器及DS寄存器中.该指令常指定SI寄存器.LESREG,SRC执行的操作:(REG)(SRC)(ES)(SRC+2)把源操作数指定的4个相继字节送到由指令指定的寄存器及ES寄存器中.该指令常指定DI寄存器.地址偏移BDB4Fh,20h

6、,3ChWDW2048,-100,0MOVBX,W+2MOVB+1,AHMOVAH,B+5MOVDX,W-3汇编器计算地址的偏移注意:汇编的时刻计算地址MOVAX,B-1不是从B的数值中减去1TYPE运算符例如V1DB‘ABCD’V2DW1234H,5678HV3DDV2……MOVAL,TYPEV1;01HMOVBL,TYPEV2;02HMOVCL,TYPEV3;04HLENGTH和SIZELENGTH返回数组变量元素的个数SIZE返回数组元素的字节大小Size=length*typeORG和$ORGn定位常数值为n的偏移地址$当前偏移地址例:ORG$+8可以表示跳过8个字节的存储区例

7、题例如:BUFDW1,2,$+1,3如果BUF的偏址为10H,问内存情况如何?例如:BUFDB1,2,3,4ABCEQU$-OFFSETBUF问ABC等于什么?PTR强制修改操作数的类型例如:MOV[BX],AX对MOV[BX],4错改为:MOVWORDPTR[BX],4MOVBYTEPTR[BX],4简单的算术运算ADDdest,sourceSUBdest,sourceINCdestDECdest操作数的类型一定要一致对标志寄存器起作用源操作

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。