نقل قول نوشته شده توسط xman_1365_x مشاهده تاپیک

و 16 با روشی که پایینتر توضیح دادم مگر اینکه مقسوم الیه 16 میبود که روش دیگه بشه انجام داد



باید یاد دبستان بیوفتیم که چطور روی کاغذ تقسیم میکردیم،البته چون اینجا مقسوم الیه بزرگتر از ثبات ما هست راهی که به ذهنم اومد تفریق با حلقه و شمارش کردنه که اون میشه خارج قسمت و کم کردن میشه باقیمانده
همین حالت بلعکس میشه ضرب یعنی با جمع ؛ جمع و تفریقم که کاری نداره فقط باید حواستون به کری و بارو باشه این روش ساده بود و میشه بستش داد برای n bit

سلام, بچه ها این الگوریتم ایرادش چیه؟؟ من تفریق های متوالی برا تقسیم دو عدد 64 بیتی استقاده کردم, در ظاهر به نظرم الگوریتم درسته ولی نتیجه درست نمیده!!! [ به عکس نگا کنین ]Untitled.png


SALL.
INCLUDE FUNC.INC

DATASG SEGMENT 'DATA'
V1R4 DW 0
V1R3 DW 0
V1R2 DW 1
V1R1 DW 2354H

V2R4 DW 0
V2R3 DW 0
V2R2 DW 0
V2R1 DW 3

d1 dW 0
D2 DW 0
D3 DW 0
D4 DW 0


COUNTER1 DW 0
COUNTER2 DW 0
DATASG ENDS

STACK SEGMENT 'STACK'
DW 200H DUP(0)
STACK ENDS

CODE SEGMENT 'CODE'
ASSUME DS:DATASG,CS:CODE,SS:STACK

MAIN PROC FAR
MOV AX,DATASG
MOV DS,AX

;MAGADIRE AVALIYE RO CHAP MIKONE

CLR 07H
CURSOR 0,0
PRINTHEX V1R4,0
PRINTHEX V1R3,0
PRINTHEX V1R2,0
PRINTHEX V1R1,0
PRINTCHAR '/'
PRINTHEX V1R4,0
PRINTHEX V2R3,0
PRINTHEX V2R2,0
PRINTHEX V2R1,0

;T*************EST MIKONE KE MAKHARJ 0 NABASHE******************
CMP V2R4,0
JNE .START
CMP V2R3,0
JNE .START
CMP V2R2,0
JNE .START
CMP V2R1,0
JNE .START
JMP .END
;************************************************* ***************

;SHORO'E TAGSIM
.START:
;*****************TEST MIKONE KE V1 > V2***********************
MOV AX,V2R4
CMP V1R4,AX
JL .END
MOV AX,V2R3
CMP V1R3,AX
JL .END
MOV AX,V2R2
CMP V1R2,AX
JL .END
MOV AX,V2R1
CMP V1R1,AX
JL .END
;************************************************* **************

;*********************INJA V1=V1-V2***************************
MOV AX,V2R4
SUB V1R4,AX

MOV AX,V2R3
SBB V1R3,AX

MOV AX,V2R2
SBB V1R2,AX

MOV AX,V2R1
SBB V1R1,AX

ADD COUNTER1,1
ADC COUNTER2,0

JMP .START
;****************** INJA TAGSIM TAMOM SHODE *******************
.END:
;*****************NATAYEJ RO CHAP MIKONE*******************
PRINTCHAR '='
PRINTHEX COUNTER2,0
PRINTHEX COUNTER1,0
_WAIT
MOV AX,4C00H
INT 21H
MAIN ENDP
CODE ENDS
END MAIN