Assembly 理解汇编8086中的随机数代码

Assembly 理解汇编8086中的随机数代码,assembly,Assembly,我在论坛上发现了一个代码,在汇编8086中生成一个介于0和9之间的随机数。代码如下: RANDSTART: MOV AH, 2ch INT 21h mov ax, dx xor dx, dx mov cx, 10 div cx mov si, dx mov variable, si 请你们给我解释一下这句话: xor dx, dx 我不明白为什么我们需要在这里使用xo

我在论坛上发现了一个代码,在汇编8086中生成一个介于0和9之间的随机数。代码如下:

    RANDSTART:
   MOV AH, 2ch         
   INT 21h       
   mov  ax, dx
   xor  dx, dx
   mov  cx, 10    
   div  cx       
   mov si, dx
   mov variable, si 
请你们给我解释一下这句话:

 xor  dx, dx 
我不明白为什么我们需要在这里使用xor。
希望你们能帮助并教我:)

xor-dx,dx
equals
mov-dx,0
。 它是一个逻辑门,用于:

1+1=0 
0+0=0 
1+0=1 
0+1=1
基本上,当您
xor
一个数字本身时,输出为0。 它比
mov
命令更可取,因为它占用的内存更少。
希望你现在能理解得更清楚一点。

你知道div做什么吗?
xor-dx,dx
只是将dx归零。
xor
将寄存器本身设置为零是另一种方法,因为任何数字xor本身都是零。非常感谢,现在我明白了,xor-dx,dx等于mov-dx,0?是的,寄存器归零有几种方法,xor方法是比较常见的方法之一,但有一点不同。XOR将改变标志,MOV不会。