Assembly 理解汇编8086中的随机数代码
我在论坛上发现了一个代码,在汇编8086中生成一个介于0和9之间的随机数。代码如下: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
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
equalsmov-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不会。