相关疑难解决方法(0)

按位移位运算符.签名和未签名

我正在使用互联网上的补习说进行SCJP考试.

根据我的说明,>>操作员应该是右移,右边是符号位.虽然左移位运算符<<应该保留符号位.

然而,在我周围玩耍时,我可以用<<操作员移动标志(fe Integer.MAX_VALUE << 1评估为-2,而我永远无法用>>操作员移动标志.

我一定是在误解这里的东西,但是什么?

java scjp bit-shift

18
推荐指数
1
解决办法
2万
查看次数

理解汇编语言的mul和imul指令的问题

我正在通过paul caurterPC Assembly学习80386

  mul source
Run Code Online (Sandbox Code Playgroud)
  • 如果操作数是字节大小,则将其乘以AL寄存器中的字节,结果存储在AX的16位中.

精细.

  • 如果源是16位,则将其乘以AX中的字,32位结果存储在DX:AX中.

Q1:为什么选择DX:AX?为什么它不能存储在EAX/EDX中?

imul 真是令人困惑

imul dest, source1
imul dest, source1, source2
Run Code Online (Sandbox Code Playgroud)

alt text http://img697.imageshack.us/img697/8976/imul.gif

我在理解表格方面遇到了问题.

Q2:在表的第2个条目中.再次,为什么DX:AX.为什么不EAX或EDX?

现在考虑以下代码片段:

imul eax ; edx:eax = eax * eax
mov ebx, eax ; save answer in ebx
mov eax, square_msg ; square_msg db "Square of input is ", 0
call print_string ; prints the string eax
mov eax, ebx 
call print_int ;  prints the int stored in eax
call …
Run Code Online (Sandbox Code Playgroud)

x86 assembly nasm

8
推荐指数
3
解决办法
2万
查看次数

对于无符号数和有符号数的补码,哪些算术运算是相同的?

我正在设计一个简单的玩具指令集和随附的模拟器,并且正在尝试找出支持哪些指令。在算术方面,我目前有无符号加法、减法、乘法和除法。但是,我似乎无法找到以下问题的明确答案:哪些算术运算符需要签名版本,哪些算术运算符的无符号和补码签名版本等效?

例如,1111 的补码等于 -1。如果你加 1 并假装它是一个无符号数,你会得到 0000,即使将其视为 -1,这也是正确的。然而,这对所有数字都适用吗?那么其他三个运算(减法、乘法、除法)呢?

binary instruction-set instructions twos-complement

7
推荐指数
2
解决办法
2458
查看次数

为什么我们要用addiu代替addi?

在MIPS组件中,使用addiuover有addi什么好处?是不是addiu未签名的(会破坏我们的计算?)

assembly unsigned add mips immediate-operand

5
推荐指数
1
解决办法
1万
查看次数

为什么ARM区分SDIV和UDIV而不是ADD,SUB和MUL?

正如标题中所述,为什么ARM指令集仅区分有符号和无符号?

SDIV和UDIV可用,但ADD,SUB和MUL不是这种情况.

binary assembly arm instruction-set division

2
推荐指数
1
解决办法
1623
查看次数