mov al,0F0h add al, 50h ; この場合、桁が足りなくなってしまう。そこで次のようにする
mov al,0F0h mov ah,0 add ax,50h ; この例では ah=0 にし、以降の計算(ADD命令)をAXで行うことで、型変換している
mov al,-1 add ah, 0 ; AX = +FFhになってしまい、AX=-1ではない
CBW ( Convert Byte to Word ) :バイトをワードに変換
CWD ( Convert Word to DoubIe ) :ワードをダブルワードに変換
CWDE ( Convert Word to Extended Double ) :ワードを拡張ダブルワードに変換
CDQ ( Convert Double to Quad ) :ダブルワードをクォートワード(4ワード)に変換
CBW 動作:ALレジスタを符号付き整数としてAXに型変換する(8bit→16bit) 8086以上のCPUで使用可 CWD 動作:AXレジスタを符号付き整数としてDX:AXに型変換する(16bit→32bit) 8086以上のCPUで使用可 CWDE 動作:AXレジスタを符号付き整数としてEAXに型変換する(16bit→32bit) 80386以上のCPUで使用可 CDQ 動作:EAXレジスタを符号付き整数としてEDX:EAXに型変換する(32bit→64bit) 80386以上のCPUで使用可
mov al,-5 cbw ; この状態で、AX=-5となる。