2013-02-23 48 views
0

那么我的问题是,为什么我们要用xor ax,ax清除ax寄存器?我认为,当用户输入变量A的字符,并且当用户再次输入变量B的字符时,这可能会覆盖ax中的内容值,但它似乎不同。当我们要使用用户输入时,为什么我们必须清除ax注册表?

这是在x86汇编中。

使用DOS,ASSEMBLER FOR 16位。 按与DOS中断任何字符:

mov ah, 01h 
+1

我们在这里说什么'字符输入'?直接从键盘数据缓冲区读取? OS API? – LeleDumbo 2013-02-23 16:04:00

+1

没有更多的上下文,这没有任何意义。什么OS?如何阅读键盘?你使用OS API(哪个API调用?),BIOS调用(哪一个?)或自定义键盘处理程序或其他? – nrz 2013-02-23 16:05:19

+0

非常抱歉,我正在谈论DOS,16 BITS ASSEMBLER,键盘上的任何字符。使用DOS中断:mov ah,01h – 2013-02-23 16:07:05

回答

3

由于要发送的参数为INT 16,

如果AH == 0则读取键盘输入在AH

如果AH == 1然后查询键盘状态/预览键 等。

阅读this

+0

嘿,谢谢!这很棒! – 2013-02-23 16:09:51

+0

你好欢快。 – ladan 2013-02-23 16:11:48

+1

为了补充ladan的回答,“xor”被频繁使用,因为与“mov ax,0”相比,它节省了几个时钟周期,而与其他可读性更强。 – Luis 2013-02-23 16:12:35

相关问题