正确答案是什么?我在测试中遇到了这个问题...:/

问题描述 投票:0回答:1

x86-64 架构

//What value will the register RAX have after
//executing the following sequence of instructions?
     
    mov al, -5
    xor ah, ah
    mov cl, 5
    div cl
    
    //a) -1
    //b) 255
    //c) 50
    //d) 0
    //e) 1
    //f) -50

我已经使用 UASM 在 Visual Studio 中编译了代码,除法后 AX 的值为 132h

assembly x86 visual-studio-2019 x86-64
1个回答
0
投票

正确答案是:你看不出来。因为代码仅更改低 16 位,所以前 48 位是块之前的内容,并且未指定。

请注意,

div
是无符号的,因此您需要将
-5
转换为无符号,即
251
。除以
5
得到结果
50
,余数
1
(正如您自己确定的那样,在
132h
中得到
AX
,因为余数进入
AH
,商进入
AL
)。由于这不是提供的选项之一,我们必须假设他们真正想要的是
AL
的值,而不是
RAX
,所以我会选择
50

© www.soinside.com 2019 - 2024. All rights reserved.