Dział montażu [duplikat]
To pytanie ma już tutaj odpowiedź:
Dlaczego EDX ma być 0 przed użyciem instrukcji DIV? [duplikować] 2 odpowiedziW moim programie liczba szesnastkowa jest dzielona przez dziesięć, a reszta jest sprawdzana.
Pierwsza dywizja działa dobrze; jednak po drugim podziale program nie działa. Jestem nowy w montażu i nie mogłem znaleźć miejsca, w którym jest problem ...
Oto segment kodu:
ORG 1000
MOV AX, 0x04B4 (1204 decimal value )
MOV BX, 0x000A ( 10 decimal value )
MOV CX, 0x0000
DIV BX ( After this part, AX is 120 decimal and DX 4 decimal )
CMP DX, 0x0000
JE eq1
ADD CX, 0x0002
JMP con1
eq1: ADD CX, 0x0001
con1:
DIV BX ( But, after this division AX becomes 6677 ( 26231 decimal and DX remains 4 decimal )
CMP DX, 0x0000
Dzięki za pomoc!