第5 符号扩展 MOVSX r16r8/m8 ;把r8/m8符号扩展并传送至r16 MOVSX r32 r8/m8/r16/m16 ;把r8/m8/r16/m16号扩展并传送至r32 MOVZX r16r8/m8 把r8/m8零饣 mov bl92h MOVZX r32 ;把r8/m8/rl6 movsx ax. b axff92h movsx esi,b esiEffffff92h movzx edax edi=0000ff92h
符号扩展 MOVSX r16,r8/m8 ;把r8/m8符号扩展并传送至r16 MOVSX r32,r8/m8/r16/m16 ;把r8/m8/r16/m16符号扩展并传送至r32 MOVZX r16,r8/m8 ;把r8/m8零位扩展并传送至r16 MOVZX r32,r8/m8/r16/m16 ;把r8/m8/r16/m16零位扩展并传送至r32 mov bl,92h movsx ax,bl ;ax=ff92h movsx esi,bl ;esi=ffffff92h movzx edi,ax ;edi=0000ff92h 第5章
第5 串输入/输出 INS ;O串输入 ;存储单元ES:I(ED←ⅣO端口DX ;(E)DIk(E)DI±1/2/4 OUTs;O串输出 ;IO端口[DX]←存储单元DS:I(E)S ;(E)SI(E)SI士1/2/4 串指令能以双字为传送单位(士4) 在16位段,采用S、Dl、cX 在32位段,采用ESl、ED|、EcX
串输入/输出 INS ; I/O串输入 ;存储单元ES:[(E)DI] ← I/O端口[DX] ;(E)DI←(E)DI±1/2/4 第5章 OUTS ; I/O串输出 ;I/O端口[DX] ← 存储单元DS:[(E)SI] ;(E)SI←(E)SI±1/2/4 串指令能以双字为传送单位(±4) 在16位段,采用SI、DI、CX 在32位段,采用ESI、EDI、ECX
第5 条件转移 转移范围可达到32位全偏移 Jcc label ;c为真,转移到labe指定的段内偏移地址处 转移范围仍为短转移 JECXZ label ECX=0,转移到labe指定的段内偏移地址处 LOOPLOOPZILOOPNZ label ;循环指令,32位段采用ECX作为计数器
条件转移 Jcc label ;cc为真,转移到label指定的段内偏移地址处 JECXZ label ;ECX=0,转移到label指定的段内偏移地址处 LOOP/LOOPZ/LOOPNZ label ;循环指令,32位段采用ECX作为计数器 第5章 转移范围可达到32位全偏移 转移范围仍为短转移
例51 mov ecx 16 moy bx, ax next shr ax 1 rcr edx 1 shr bx, 1 rcr edx 1 loop next moy eax, edx
mov ecx,16 mov bx,ax next: shr ax,1 rcr edx,1 shr bx,1 rcr edx,1 loop next mov eax,edx 例5.1