比较指令在使用时,一般在其后紧跟一条条件 转移指令,判断比较结果的转向。 举例:比较AL、BL、CL中带符号数的大小,将 最小数放在AL中 程序: CMP AL,BL;AL和BL比较 JNG BBB;若AL≤BL,则转 XCHG AL,BL;若AL>BL,则交换 BBB: CMP AL,CL;AL和CL比较 JNG CCC;若AL≤CL,则转 XCHG AL,CL;若AL>CL,则交换 CCC: HLT
11 比较指令在使用时,一般在其后紧跟一条条件 转移指令,判断比较结果的转向。 举例:比较AL、BL、CL中带符号数的大小,将 最小数放在AL中。 程序: CMP AL,BL ;AL和BL比较 JNG BBB ;若AL≤BL,则转 XCHG AL,BL ;若AL>BL,则交换 BBB: CMP AL,CL ;AL和CL比较 JNG CCC ;若AL≤CL,则转 XCHG AL,CL ;若AL>CL,则交换 CCC: HLT
3.乘法指令 √进行乘法时:8位*8位→16位乘积 16位*16位→32位乘积 (1)无符号数的乘法指令 MUL MEM/REG) 格式: MUL src 操作:字节操作数(AX)<(AL)×(src) 字操作数(DX,AX)<(AX)×(src) 指令例子: MUL BL (AL)×(BL),乘积在AX中 MUL CX;(AX)×(CX),乘积在DX,AX中 MUL BYTE PTR BX
12 ✓进行乘法时:8位*8位→16位乘积 16位*16位→32位乘积 (1) 无符号数的乘法指令MUL(MEM/REG) 格式: MUL src 操作:字节操作数 (AX) (AL) × (src) 字操作数 (DX, AX) (AX) × (src) 指令例子: MUL BL ;(AL)×(BL),乘积在AX中 MUL CX ;(AX)×(CX),乘积在DX,AX中 MUL BYTE PTR[BX] 3. 乘法指令
(2)有符号数乘法指令IMUL 格式与MUL指令类似,只是要求两操作数均为 有符号数。 指令例子 IMUL BL (AX)←(AL)×(BL IMUL WORD PTRLSI ;(DX,AX)←(AX)×([SI+1][SI) 注意:MUL/IMU指令中 ●AL(AX)为隐含的乘数寄存器; ●AX(DX,AX)为隐含的乘积寄存器; ●SRC不能为立即数; ●除CF和0F外,对其它标志位无定义
13 格式与MUL指令类似,只是要求两操作数均为 有符号数。 指令例子: IMUL BL ;(AX)←(AL)×(BL) IMUL WORD PTR[SI] ;(DX,AX)←(AX)×([SI+1][SI]) (2) 有符号数乘法指令IMUL 注意:MUL/IMUL指令中 ● AL(AX)为隐含的乘数寄存器; ● AX(DX,AX)为隐含的乘积寄存器; ● SRC不能为立即数; ● 除CF和OF外,对其它标志位无定义