资源描述:
《第3章-2数据传送指令.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、80X86的寻址方式和指令系统之数据传送类指令2021/8/1413.38086/8088指令系统8086/8088的指令系统可分为以下6类(功能组)3.3.1数据传送类指令3.3.2算术运算类指令3.3.3逻辑运算与位移3.3.4串操作指令3.3.5控制转移指令3.3.6处理器的控制类指令2021/8/1423.3.1数据传送类指令数据传送是计算机中最基本、最重要的一种操作,传送指令也是最常使用的一类指令传送指令把数据从一个位置传送到另一个位置除标志寄存器传送指令外,均不影响标志位重点掌握MOVXCHGXLATPUSHPOPL
2、EA2021/8/143一、通用数据传送指令提供方便灵活的通用传送操作有5条指令MOVXCHGXLATPUSH/POP2021/8/1441.传送指令MOV(move)把一个字节或字的操作数从源地址传送至目的地址MOVreg/mem,imm;立即数送寄存器或主存MOVreg/mem/seg,reg;寄存器送(段)寄存器或主存MOVreg/seg,mem;主存送(段)寄存器MOVreg/mem,seg;段寄存器送寄存器或主存演示2021/8/1451.传送指令MOV(move)具体传送方向:REGREG(除了CS和IP以外)MOV
3、AX,BXREG内存MOVAX,[2010H]MOV[SI],CXREG←立即数MOVAL,32H内存←立即数MOVWORDPTR[DI],1080HMOV指令不能实现两个存储单元之间的数据传送。例:MOVAL,AREA1MOVAREA2,AL2021/8/146MOV指令——立即数传送movCL,4;CL←4,字节传送movDX,0FFh;DX←00FFh,字传送movSI,200h;SI←0200h,字传送movbvar,0Ah;字节传送;假设bvar是一个字节变量,定义如下:bvarDB0movwvar,0Bh;字传送;假
4、设wvar是一个字变量,定义如下:wvarDW0明确指令是字节操作还是字操作以字母开头的常数要有前导02021/8/147MOV指令——寄存器传送movah,al;ah←al,字节传送movbvar,ch;bvar←ch,字节传送movax,bx;ax←bx,字传送movds,ax;ds←ax,字传送mov[bx],al;[bx]←al,字节传送寄存器具有明确的字节和字类型2021/8/148MOV指令——存储器传送moval,[bx];al←ds:[bx]movdx,[bp];dx←ss:[bp+0]movdx,[bp+4];d
5、x←ss:[bp+4]moves,[si];es←ds:[si]MOV传送指令不存在存储器向存储器传送2021/8/149MOV指令——段寄存器传送mov[si],dsmovax,ds;ax←dsmoves,ax;es←ax←ds对段寄存器的操作不灵活2021/8/1410例3.1数据传送有如下两条指令:MOVDS,[1000H]MOV[BX],ES设执行前:(DS)=4000H,[41000H]=00H,[41001H]=11H,(ES)=3000H,(BX)=2000H则这两条指令执行后:(DS)=1100H,[13000H]
6、=00H,[13001H]=30H2021/8/1411MOV指令传送功能图解非法指令的主要现象:两个操作数的类型不一致无法确定是字节量还是字量操作两个操作数都是存储器两个段寄存器之间直接传送数据立即数、CS、IP作为目的操作数立即数直接送段寄存器立即数存储器通用寄存器AXBXCXDXBPSPSIDI段寄存器CSDSESSSMOV指令也并非任意传送!2021/8/1412非法指令——两个操作数类型不一致在绝大多数双操作数指令中,目的操作数和源操作数必须具有一致的数据类型,或者同为字量,或者同为字节量,否则为非法指令MOVAL,05
7、0AH;非法指令,修正:;movax,050ahMOVSI,DL;非法指令,修正:;movdh,0;movsi,dx2021/8/1413非法指令——无法确定是字节量还是字量操作当无法通过任一个操作数确定是操作类型时,需要利用汇编语言的操作符显式指明MOV[BX+SI],255;非法指令,修正:;movbyteptr[bx+si],255;byteptr说明是字节操作;movwordptr[bx+si],255;wordptr说明是字操作2021/8/1414非法指令——两个操作数都是存储器8088指令系统除串操作指令外,不允许两
8、个操作数都是存储单元(存储器操作数)MOVbuf2,buf1;非法指令,修正:;假设buf2和buf1是两个字变量;movax,buf1;movbuf2,ax;假设buf2和buf1是两个字节变量;moval,buf1;movbuf2,al2021