如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第二章汇编语言与汇编程序程序设计语言通常分类机器指令:使用二进制编码的指令,以表示计算机要进行操作的操作数及操作对象(数据或数据地址)。指令系统:特定计算机上机器指令的集合。机器语言:由指令系统以及机器指令的使用规则构成的。计算机唯一能识别的语言,只有用机器语言描述的程序,计算机才能直接执行。指令的一般格式操作码[目的操作数],[源操作数];[注释]操作数一般形式:1、立即数操作数2、寄存器操作数3、存储器操作数4、I/O端口操作数§2-18086/8088的寻址方式寻址方式:获得操作数地址的方式。通常有6种。一、立即寻址操作数紧跟在操作码之后,与操作数一起存放在一个代码段区域中,可以是8bit/16bit。例:MOVAX,3102H二、直接寻址直接给出存储单元的偏移地址。操作数的有效地址(EA)直接包含在指令中,紧跟在操作码之后。例:MOVAX,[3102H],(DS)=2000H三、寄存器寻址操作数存放在指定的寄存器中。对于16位数据,寄存器有:AX、BX、CX、DX、SI、DI、SP、BP。例:MOVDS,AX四、寄存器间接寻址寄存器(SI、DI、BX、BP)中的内容是操作数的偏移地址,操作数存放在存储器中。有效地址=例:MOVAX,[SI],(DS)=6000H,(SI)=1200H执行时,先算出物理地址=(DS)×16+1200H=61200H五、变址寻址操作数存放在存储器中,寄存器(SI、DI、BX、BP)中的内容作为间接地址,再加上指令中给出的8位/16位偏移量,形成操作数的偏移地址。例:MOVAX,DATA[BX],(DS)=6000H,(BX)=1000H,DATA=0008H。执行时,先算出物理地址=(DS)×10+(BX)+DATA=61008H六、基址加变址寻址1、有效地址=基址寄存器内容(BX)/(BP)+变址寄存器内容(SI)/(DI)注:BX的默认段寄存器是DS,BP的默认段寄存器是SS。例:MOVAX,[BX][SI],(DS)=8000H,(BX)=1000H,(SI)=2000H。执行时,先算出物理地址=(DS)×16+(BX)+(SI)=83000H将(83000H)与(83001H)两个存储单元当中的数据送到AX。2、有效地址=基址寄存器内容(BX)/(BP)+变址寄存器内容(SI)/(DI)+8位/16位偏移量例:MOVAX,DATA[BX][DI],(DS)=8000H,(BX)=1000H,(DI)=2000H,DATA=0200H。执行时,先算出物理地址=(DS)×16+(BX)+(SI)+DATA=83200H将(83200H)与(83201H)两个存储单元当中的数据送到AX。§2-2指令系统8086/8088具有相同的指令系统,按功能分为以下6类一、数据传送指令数据传送指令是最简单、最常用的一类指令,它是负责把数据、地址、或立即数传送到寄存器或存储单元中。说明:1、一次可传送8位/16位,传送的位数取决于寄存器长度和立即数长度;2、可以使用各种寻址方式。1、通用传送指令MOV格式:MOV目的,源功能:将源操作数复制传送到目的操作数,而源地址中的操作数不变。类型:注:特别的,CS一般不允许赋值,系统链接时,由系统给CS赋值。例:MOV36H,ALMOVDS,2000H通用寄存器之间的传送例:MOVAL,BLMOVAX,DXMOVSI,BPMOVDL,DHMOVBX,DIMOVAX,CLMOVAL,BX寄存器与存储器之间的传送例:MOV[BX],AXMOV[BX],AHMOVCL,[BP][DI]MOV[BX],[BP+CL]MOVAX,[6000H]立即数通用寄存器例:MOVAL,5MOVBX,3078HMOVAL,1000MOVAX,5MOV[BX],0立即数存储器例:MOVBYTEPTR[BP+SI],5MOVWORDPTR[BX],1005H存储器与段寄存器之间的传送例:连续执行MOVDS,[1000H]MOV[BX],ES已知:(DS)=8000H,(ES)=4000H,(BX)=1200H,(81000H)=00H,(81001H)=20H则:执行结果(21200H)=00H,(21201H)=40H2、堆栈操作指令例:MOVAX,9000HMOVSS,AXMOVSP,0E200HMOVDX,38FFHPUSHDXPUSHAXPOPDXPOPAX3、数据交换指令XCHG格式:XCHG目的,源功能:将源操作数与目的操作数中的内容交换。类型:8