资源描述:
《汇编语言复习辅导》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、汇编语言复习辅导第三章8086指令系统和寻址方式应掌握编写一个完整的汇编语言程序所必需的知识及其相应概念:(1)汇编语言程序的格式(2)常用伪指令(伪操作)(3)8086寻址方式(4)8086指令系统1汇编语言程序格式.80x86的逻辑段:堆栈段、数据段、附加段、代码段(1)完整段定义;-----------------------STSEGSEGMENT;定义堆栈段DB64DUP(?)STSEGENDS;-----------------------DTSEGSEGMENT;定义数据段DATA1DB36HDATA2DB4
2、BHSUMDB?DTSEGENDS;-----------------------CDSEGSEGMENT;定义代码段MAINPROCFARASSUMECS:CDSEG,DS:DTSEG,SS:STSEGSTART:MOVAX,DTSEGMOVDS,AX;设置数据段地址MOVAL,DATA1;用户程序MOVBL,DATA2ADDAL,BLMOVSUM,ALMOVAH,4CH;返回DOSINT21HMAINENDPCDSEGENDSENDSTART;汇编结束(2)简化段格式:·MODELSMALL;存储模型·STACK100
3、H;定义堆栈段及大小·DATA;定义数据段VAR1DB?·CODE;定义代码段MAINPROCFAR;定义过程START:MOVDX,@DATA;设置数据段MOVDS,AX;地址…MOVAX,4COOH;返回DOSINT21HMAINENDP;过程结束ENDSTART;汇编结束2.常用伪操作(1)程序结构伪操作段定义伪操作:段名SEGMENT……段名ENDS过程定义伪操作:过程名PROC[NEAR/FAR]……过程名ENDP程序开始和结束伪操作:TITLE程序名----程序说明(<60个ASCII字符)END[START]
4、段分配伪操作:ASSUMECS:代码段名,DS:数据段名ASSUMESS:堆栈段名,ES:附加段名(2)数据类型及数据定义伪操作•ORG指定数据的存储地址或代码段的起始地址例:ORG100H例:ORG100HDATA1DB100START:MOVAX,BX•DB定义字节,其后的数据存储在一个字节中•DW定义字,对其后的数据分配2个字节,数据的低8位存放在低字节,高8位存放在高字节;ListFileforDDExamples00A0ORG00A0H00A0FF030000DATA13DD102300A45C960800DAT
5、A14DD10001001011001011100B00A8F2572A5CDATA15DD5C2A57F2H00AC2300000089470300DATA16DD23H,34789H,65533FDFF0000•DQ定义4字,为数据分配8个字节单元•DT定义5字,为压缩的BCD数据分配存储单元例如:DATADQ1122334455667788HDATBDT?•DUP按照给定的次数来复制某个(某些)操作数例如:DATCDW32DUP(?)DATDDB5DUP(0,8DUP(1))•EQU赋值伪操作•=COUNTEQU25
6、COUNTERDBCOUNTMOVAH,COUNTTEMP=25MOVAH,TEMPTEMP=TEMP+1MOVAL,TEMP(3)属性伪操作•PTR指定操作数的类型属性MOVAX,WORDPTRDATBMOVBL,BYTEPTRDATW•LABEL定义变量或标号的类型属性B_DATLABELBYTEW_DATDW50DUP(?)3.8086寻址方式寻址方式--指令中表示操作数地址的方式,学习时要注意:(1)正确书写各种寻址方式的汇编格式(2)清楚各种寻址方式所指定的操作数或操作数地址在何处?(指令中/寄存器中/存储器单元
7、中)(3)各种存储器寻址方式是如何形成操作数的物理地址的?(段寄存器/基址、变址寄存器/偏移量的组合关系)(4)各种寻址方式限定使用的寄存器<1>与数据有关的寻址方式小结寻址方式操作数地址(PA)指令格式举例立即寻址操作数由指令给出MOVDX,100H;(DX)←100H寄存器寻址操作数在寄存器中ADDAX,BX;(AX)←(AX)+(BX)直接寻址操作数的有效地址由指令直接给出MOVAX,[100];(AX)←(100)MOVAX,VAR;(AX)←(VAR)寄存器间接PA=(DS)×16+(BX)或(SI)或(DI)P
8、A=(SS)×16+(BP)MOVAX,[BX];(AX)←((DS)×16+(BX))寄存器PA=(DS)×16+(BX)或(SI)或(DI)+位移量相对寻址PA=(SS)×16+(BP)+位移量MOVAL,MESS[SI];(AL)←((DS)×16+(SI)+OFFSETMESS)基址变址PA=(