x86

    0热度

    3回答

    简单的装配程序可以吐出两个用户输入数字中较大的一个。我无法正确输出输出。例如,如果我输入45和55,最大值将是55,但是当我尝试反向55和45(答案应该仍然是55)时,我得到45.这看起来似乎只能输出第二个输入值存储在EAX。任何帮助是极大的赞赏。 .586 .MODEL FLAT INCLUDE io.h .STACK 4096 .DATA value1 DWORD ? val

    -3热度

    1回答

    我在Assembly中得到了这个代码,它基本上在游戏中打印了一条灰色的消息。 下面的代码: 我的问题是哪一行代码定义了灰色?

    0热度

    1回答

    我想86教我,我已经在整个运行需要返回立即,负数: .text .align 4,0x90 .globl _scheme_entry _scheme_entry: movl $-42, %eax ret 当我打印这个功能(printf("%" PRIdPTR "\n", scheme_entry())的返回值,我得到一个废话号: $ ./neg 429496

    5热度

    1回答

    我想从一个由8个整数组成的另一个__mm256i offset指定的8个位置从一个寄存器变量__mm256i src中提取8个比特。 例如:如果offset是[1,3,5,21,100,200,201,202],我想从src获得第1,3,5,10,100,121,202位,并将它们打包到int8。 这个问题类似于Extracting bits using bit manipulation,但我想用

    0热度

    1回答

    如果堆栈向下增长,并且EBP指向堆栈的底部,那我为什么会看到这样的操作,如mov eax [ebp + 4]。这不会引用当前栈帧之外的变量吗?

    1热度

    1回答

    最近,我已经开始通过YouTube频道学习大会,并有一些问题有关声明中部分的标签。数据 当我们写下如下所示的内容:test db“hello world”,是标记“测试”,类似于程序语言中的指针吗?(这意味着它保存文本“hello world”中第一个元素的内存地址) 当我们写:mov rsi test,是否意味着我们把“hello world”的地址放入rsi寄存器中? 另一个问题是关于[]的用

    -6热度

    2回答

    用汇编语言中的选择排序对十个数字列表进行排序。 如何转换我这个冒泡排序方法为选择排序方法 `[org 0x0100] jmp start data: dw 60, 55, 45, 50, 40, 35, 25, 30, 10, 0 swap: db 0 start: mov bx, 0 ; initialize array index to zero mov byte [swap], 0

    0热度

    1回答

    有什么影响?内核是用静态库编译还是内在实现? 此外,根据this,内核代码不能使用任何浮点操作。这是为什么?

    1热度

    1回答

    这里是我的代码: section .data digit db 0,10 section .text global _start _start: call _printRAXDigit mov rax, 60 mov rdx, 0 syscall _printRAXDigit: add rax, 48

    0热度

    2回答

    所以,我有一个汇编函数,它在C中调用。它编译并且没有给出警告,但是当我尝试运行它时,它给了我一个分段错误。我认为这是因为我不能将一个常量移动到一个寄存器中,但是使用mul/div命令它需要一个值在EAX寄存器中。 我如何在Assembly中乘两个常量? 下面的代码到目前为止... .section .data .global n .equ A, 50 .equ B, 5 .section