【发布时间】:2012-10-15 21:08:30
【问题描述】:
列出使 x、y 和 z 定义如下的最短可能代码(计算指令数),得到值 1。 对于 80*86 的机器
x: dw 0xff00
y: resb 1
z: resw 1
编辑: 我认为答案应该是这样的:
MOV DWORD [x+1], 0x01010001 ;
;检查:
mov eax , 0
mov al , byte[y]
print_d eax ; print 0
mov eax , 0
mov ax , word[x]
print_d eax ; print 256
mov eax , 0
mov ax , word[z]
print_d eax ; print 257
但是。不好...应该打印 1
【问题讨论】:
-
不清楚在问什么。该代码是否必须初始化 x、y 和 z? “获取值 1”是什么意思?这是什么CPU用的?如果是x86,什么模式? 16位? 32位? 64位?如果是16位,可以用32位指令吗?
-
我编辑它。 “取值 1”表示在指令 x=y=z=1 之后