20081209

out时候端口号需不需要保存在dx中

一个例子
mov ax, 0aah
mov dx, 80h
out dx, ax

第二个例子:
mov ax, 0aah
out 80h, ax

编译都能够通过,可是到底在什么情况下才需要使用dx来存储端口号呢?

仔细看过汇编语言课本的都会发现,在使用out的时候,如果大于0ffh的端口号都需要使用dx来存储端口号,然后out dx。
如果小于等于ffh的话,则可以像第二个例子中那样直接out 80h了。

第三个例子:
mov ax, 0aah
mov dx, 0cf8h
out dx, ax

在这个例子中需要操作PCI,端口号大于0ffh,所以得先放到dx中再out。

没有评论:

发表评论