I have two different lists qlst1 dq 80000, 40000, 123123, 123123 dlst1 dd 533, 2314, 123, 231 alst1 dd 4 (?) DUP Now I want to divide the qlst by dlst and then save in the alst which is alst1 How do I do it. qlst1 is a quad so that I cannot put in a register directly. mov eax, dlst lea ebx, qlst mov eax, dword ptr[ebx]+4 mov alst, eax I am lost from here, please help
Do you remember doing long division at school? For example 56473/27 might be done as: Code: __2091_ 27 ) 56473 54 -- 247 243 --- 43 27 -- 16 56473/27=2091 r 16 So one way is to code up this algorithm. Another way is to shift and subtract, e.g. 56473/27 part 1: 27>56473? no: shift left and repeat (should that be > or >=?) 270>56473? no: shift left and repeat 2700 27000 270000>56473? yes: shift right part 2: 27000>56473? no: subtract 56473 27000- ===== 29473 27000>29473? no: subtract (leaves 2473) 27000>2473? yes: shift right 2700>473? yes: shift right 270>2473? no: subtract 270>2203? no: subtract 270>1933? no: subtract 270>1663? no: subtract 270>1393? no: subtract 270>1123? no: subtract 270>853? no: subtract 270>583? no: subtract 270>313? no: subtract 270>43? yes: shift right 27>43? no: subtract 27>16? yes: can't shift right any more so this ends the loop. This doesn't show where you get the answer (2091) from, but maybe you can figure that bit out?