2024年3月31日发(作者:)
;DIV r/m ;参数是除数
;如果参数是 r8/m8, 将把 AX 做被除数; 商 -> AL, 余数 -> AH
;如果参数是 r16/m16, 将把 DX:AX 做被除数; 商 -> AX, 余数 -> DX
;如果参数是 r32/m32, 将把 EDX:EAX 做被除数; 商 -> EAX, 余数 -> EDX
; DIV 测试
; Test27_
.386
.model flat, stdcall
include
include
include
include
includelib
includelib
includelib
.code
main proc
;除数是 8 位
mov ax, 17 ;被除数
mov cl, 3 ;除数
div cl
PrintDec al ;5 - 商
PrintDec ah ;2 - 余数
;除数是 16 位
mov dx, 0 ;
mov ax, 17 ;dx:ax 是被除数
mov cx, 3 ;cx 是除数
div cx
PrintDec ax ;5 - 商
PrintDec dx ;2 - 余数
;除数是 32 位
mov edx, 0 ;
mov eax, 17 ;edx:eax 是被除数
mov ecx, 3 ;ecx 是除数
div ecx
PrintDec eax ;5 - 商
PrintDec edx ;2 - 余数
ret
main endp
end main
;IDIV 测试
; Test27_
.386
.model flat, stdcall
include
include
include
include
includelib
includelib
includelib
.code
main proc
;除数是 8 位
mov al, -17
cbw ;ax 是被除数
mov cl, 3 ;除数
idiv cl
PrintDec al ;-5 - 商
PrintDec ah ;-2 - 余数
;除数是 16 位
mov ax, -17
cwd ;dx:ax 是被除数
mov cx, 3 ;cx 是除数
idiv cx
PrintDec ax ;-5 - 商
PrintDec dx ;-2 - 余数
;除数是 32 位
mov eax, -17
cdq ;edx:eax 是被除数
mov ecx, 3 ;ecx 是除数
idiv ecx
PrintDec eax ;-5 - 商
PrintDec edx ;-2 - 余数
ret
main endp
end main


发布评论