【发布时间】:2019-09-28 14:40:32
【问题描述】:
根据我的理解,%eax表示eax包含的值,(%eax)表示转到eax保留的地址
seta20.1:
inb $0x64, %al # Wait for not busy
testb $0x2, %al
jnz seta20.1
movb $0xd1,%al # 0xd1 −> port 0x64
outb %al, $0x64
那么,为什么 %al 周围没有括号呢? 因为如果我想通过使用寄存器将 val 移动到地址,我应该这样做:
mov %ebx, (%eax)
对吗?
【问题讨论】:
-
不清楚你指的是哪一行代码。但在这段代码中,
al没有被用作地址,因此没有括号。