2013-12-05 4 views
-5

Вопрос:Отдел вычитанием

Разделить А в В, предположим, что A < B. Ответ будет переходит в B д раз с остатком R

Пример: 7 переходит в 20 2 раз остаток 6

Подсказка: вычесть A из B до A> разницы. Считайте, сколько раз вы вычитали, а разница должна быть остатком.

Ex 20-7 = 13 
    13 – 7 = 6 
    6 <7 so the count is 2 and the remainder is 6 

Это мой код. Это не полно. Я не знаю, как это сделать. Любая помощь была бы благодарна.

TITLE  PROJECT 
INCLUDE Irvine32.inc 
.data 
prompt1 byte 'Enter number A:',0 
prompt2 byte 'Enter number B:',0 
a dword ? 
b dword ? 
remainder dword ? 
.code 
main proc 
    call clrscr 

    mov eax,0 
    mov ebx,0 
    mov edx,offset prompt1 
    call writestring 
    call readint 
    mov a,eax 

    mov edx,offset prompt2 
    call writestring 
    call readint 
    mov b,ebx 

    mov eax,a 
    mov ebx,b 
    sub ebx,a  ;set edx to 0 
    div ebx 
    mov remainder,ebx 
    ;xor eax,eax 


    call writedec 
    call crlf 

exit 
main ENDP 
END main 
+0

Итак, где же ваша петля? В чем дело? – Devolus

+0

извините за поздний ответ. Я не знаю, как считать остаток. – lhag

ответ

1

Цикл осуществляется следующим образом:

прогиб вниз:

mov ecx, 10 ; count from 10 to 0 

label: 
    dec ecx 
    loop label 

петля вверх:

xor ecx,ecx ; count from 0 to 10 
label: 
    inc ecx 
    cmp ecx, 10 
    jne label 

Теперь подумайте, как ваш алгоритм работает и как использовать эту информацию ,

+0

mov eax, a mov ebx, b sub ebx, xor ecx, ecx; кол-во от 0 до 10 ярлык: inc ecx cmp ecx, 10 jne label Могу ли я просто поместить ваш код под свой код, чтобы он прошел через цикл. – lhag

+0

жаль, что я не знаю, как писать код в комментарии .. – lhag

+0

Есть ли у вас знания на других языках, таких как 'C'? Если да, тогда вы можете сначала написать свой алгоритм на C и сохранить его простым. Попытайтесь ограничить себя использованием только небольшого количества переменных, потому что в ЦП не так много регистров. Это должно помочь вам понять, как должна выглядеть сборка. – Devolus