小编ine*_*ero的帖子

方括号在x86汇编中的含义是什么?

我对装配很新,并且有一些非常基本的问题.

这四个命令有什么区别?

mov ebx, eax
mov [ebx], eax
mov ebx, [eax]
mov [ebx], [eax]
Run Code Online (Sandbox Code Playgroud)

他们说括号的意思是"得到地址的价值".但那么,第一线真正做到了什么呢?它不会将eax的价值转移到ebx吗?如果是这样,那么括号的重点是什么?

memory x86 assembly intel-syntax

4
推荐指数
2
解决办法
3232
查看次数

x86汇编中的冲突符号:movsx然后是unsigned compare/branch?

我对以下代码段感到困惑:

movsx   ecx, [ebp+var_8] ; signed move
cmp     ecx, [ebp+arg_0]
jnb     short loc_401027 ; unsigned jump
Run Code Online (Sandbox Code Playgroud)

这似乎有冲突.Var_8似乎是在签名扩展帐户上签名的.然而,jnb暗示var_8未在帐户上签名,它是无符号的比较.

那么,var_8是签名还是未签名?那么arg_0呢?

x86 assembly masm micro-optimization signedness

3
推荐指数
1
解决办法
222
查看次数

无法比较可比较的类型(对象)

我收到了这个神秘的错误:

对于参数类型java.lang.Comparable,java.lang.Comparable,未定义operator>

有没有搞错?

(这是代码)

public class BST<T extends Comparable<T>> {
    public static class Node<P extends Comparable<P>> {
        P val;
        Node<P> left;
        Node<P> right;

        public Node() {

        }

        public Node(P val) {
            this.val = val;
        }
    }

    Node<T> root;

    private void addValHelper(Node root, Node newNode) {
        if (root.val > newNode.val) { // <-- ERROR IS HERE
            if (root.left == null) {
                root.left = newNode;
            } else {
                addValHelper(root.left, newNode);
            }
        } else {
            if (root.right == null) {
                root.right = newNode; …
Run Code Online (Sandbox Code Playgroud)

java generics comparable

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