MOV指令传送功能图解
立即数 存 储 器 MOV指令也并非任意传送! 通用寄存器 AX BX CX DX BP SP SI DI 段寄存器 CS DS ES SS 非法指令的主要现象: 两个操作数的类型不一致 无法确定是字节量还是字量操作 两个操作数都是存储器 段寄存器的操作有一些限制
;ax=4652h ;ax=3742h,CF=1 ;dx=0234h ;dx=f325h,CF=0
增量和减量指令
增量指令INC
对操作数加1(增量)
INC reg/mem ;reg/mem←reg/mem+1
减量指令DEC
对操作数减1(减量)
DEC reg/mem ;reg/mem←reg/mem-1
mov wvar,5566h ;wvar是一个字量变量 xchg ax,wvar ;ax=5566h,wvar=9911h ;等同于 xchg wvar,ax xchg al,byte ptr wvar+1 ;ax=5599h,wvar=6611h ;“byte ptr wvar+1”强制为字节量,只取高字节 与 AL类型交换,否则数据类型不匹配
指针传送指令
LDS指令
将主存中mem指定的字送至r16,并将mem的下一字送 DS寄存器。 LDS r16,mem ;r16←mem, ;DS←mem+2
LES指令
将主存中mem指定的字送至r16,并将mem的下一字送 ES寄存器。 LES r16,mem ;r16←mem, ;ES←mem+2
非法指令--无法确定是字节量还是字量操作
当无法通过任一个操作数确定是操作类型时,需 要利用汇编语言的操作符显式指明。 MOV [BX+SI], 255 ;非法指令,修正: