如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
课前复习指令系统:1.MOVDS,2010H;错不能将立即数直接给段寄存器2.PUSHAL;错不能对字节进行堆栈操作3.MOVDX,[SP];错无[SP]寻址方式,存储器地址只能通过BX,BP,SI,DI寻址4.INAL,0A00H;错端口地址大于FFH应用DX寻址端口5.XCHGCL,CH;对6.AAACX;错AAA为无操作数指令,默认操作数AL7.ADD[BP+DI],[1000H];错两个操作数不能均为存储器8.OUTDX,CL;错端口只能通过AL或AX传送数据9.CBWBH;错符号扩展命令为无操作数指令,默认操作数AL10.ADD03ECH,AX;错目的操作数不能为立即数11.MOVBX,[SP+DI];错无[SP+DI]寻址,必须是基址(BX或BP)+变址(SI或DI)12.MOVDI,[AX];错无[AX]寻址13.LDSCH,[DI];错LDS指令目的操作数应为一个16为寄存器14.LEABX,1000H;错LEA源操作数应为一个存储器操作数,不能是立即数15.DIV0010H;错单操作数不能是立即数16.LEADX,DI;错LEA源操作数应为一个存储器操作数,不能是寄存器17.MULAX,200H;错MUL为单操作数指令,且源操作数不能为立即数,AX隐含18.MOVAX,[BX+BP];错无[BP+BX]寻址,理由同第12题19.CMP[BX],[SI];错双操作数不能均为存储器21.OUTDX,BX;错端口只能通过AL或AX传送数据22.AND0FH,AL;错目的操作数不能为立即数23.JNZAAA;错AAA十一条指令.不能作为符号地址例1复习求补指令:MOVAH,80HNEGAHCMPoprd1,oprd2;(oprd1)-(oprd2)例将AX和BX中较大的带符号数,存于AX中CMPAX,BX;比较JGEgreat;大于或等于则跳转XCHGAX,BX;小于则交换great:、、、CMP指令应用举例:带符号数找最大值若自BLOCK开始的内存缓冲区中,有100个带符号数。找出最大值。并存放到MAX单元中。思路:第一个数取出(AX),取出第二个数(第二个字单元内容)与(AX)比较:(AX)>第二个数,不做交换,否则,(第二个字单元内容)(AX)。再取第三个数,…经过99次比较,在(AX)中得到最大数。…编程:MOVBX,OFFSETBLOCKMOVAX,[BX]INCBXINCBXMOVCX,99AGAIN:CMPAX,[BX]JGNEXT;(AX)大,转NEXTMOVAX,[BX]NEXT:INCBXINCBXDECCXJNZAGAINMOVMAX,AX;MAX单元存放最大值8086/8088指令系统(续)三.逻辑运算指令1.逻辑运算指令ANDAL,00001111BORBX,00FFHNOTCLXORDL,ALTESTAL,00000001B以“与”指令为例,讨论注意事项:“与”指令中操作数不能同时为存储器;影响条件码:CF=0F=0,AF未定义,SFZFPF↕↕↕“与”指令的用途:(1)清CF,自己“与”自己.操作数不变,CF=0例:ANDAL,AL;结果:操作数不变,CF=0。(2)使操作数中若干位保持不变,若干位与“1”相与;而若干位置为“0“的场合,若干位与“0”相与。例:若(AL)=43HANDAL,0FH;(AL)=03H,(AL)0~3不变;;(AL)4~7=00H,屏蔽高4位。2.移位指令3.循环移位指令共同点:所有移位指令都可以作B/W操作。指令中的dest:寄存器、存储器寻址方式。cnt:表示移位次数cnt=1,1可写在指令中,不能是1以外的常数。cnt>1,用CL存放移位次数,不能是其他寄存器。如:SALAX,1MOVCL,4SALAX,CL注意事项:SHLAL,1SHRAL,CLROLBX,1RCRAL,CL源操作数为移位的次数为1可在指令中直接给出大于1时,移位次数需由CL给出RCRAX,5SHLBL,AL目的操作数类型决定操作类型SALBL,CL字节操作ROLBX,CL字操作循环移位指令(Rotate)与移位指令(Shift)不同点:移位指令执行后,移出的位可能丢失;循环移位指令移位后,操作数中原来各数位的信息不会丢失,这是移动了位置,必要时可以恢复。循环移位指令可以对操作数进行测试。例:测试(AL)5=?0