私はアセンブリにかなり慣れていないので、特定の数値の素因数分解を出力しようとしています。ネットを何時間も探し回った結果、DIV 命令に関する役立つ情報をいくつか見つけましたが、自分のコードで自分のやりたいことを実行することができません。
私はひどく間違ったことをしましたが、それを見つけることはできません。誰か親切な人が私にそれを見つけてくれませんか?
.data
myMessage BYTE "Please enter a number to be evaluated:",0dh,0ah,0
factor DWORD 2
hold DWORD ?
.code
main PROC
call Clrscr
mov edx,offset myMessage
call WriteString ;Displays myMessage
call ReadDec ;Puts value into EAX register
mov edi, factor
call prime
exit
main ENDP
prime PROC
step1: xor edx, edx
div edi
cmp edx, 1
jz step2
add factor, 1
mov edi, factor
jmp step1
step2: mov hold, eax
mov eax, edi
call WriteDec
mov eax, hold
CMP eax, 1
jz step3
jmp step1
step3:
exit
prime ENDP
END main