assembly

    -1热度

    1回答

    我是新来的汇编语言,我正在尝试创建一个简单的程序来用汇编语言添加数字。 当.MODEL为Tiny时,我确实成功启动了该程序,但当.MODEL变为小时,程序返回“重复声明”错误。 我明白这两个模型的定义,但我无法弄清楚什么变化。 我所做的尝试: 我改变了数据名称数据1和它的作品在小而不微小。 我添加的代码.ORG 100H .MODEL后和它的作品,因为它使近存储器中运行的程序(?) 我缺少什么概念

    1热度

    1回答

    我试图将C代码转换为MIPS代码。 int main() { int a; int b; int result = 0; if (a != b) result = test(a, b); else result = a + b; return result; } int test(int a, int b) {

    -1热度

    1回答

    你好,我正在努力解决大学中的一个问题。 我们正在学习x86 asm,到目前为止,我花了很多时间来正确理解代码。 我试图以签名的方式添加+ b -c + d并返回一个64位值(long long) 问题是,代码实际上起作用,我不明白它为什么会这样做。 以下变量声明main.c中作为全局 char op8 = 0; short op16 = 0; int op32a=0,op32b=0; in

    3热度

    2回答

    我们正在研究MIPS汇编(我想这个问题可以适用于装配虽然在一般),老师向我们介绍了帧指针。 如果我有一个函数序言,我用来直接做堆栈指针: addiu $sp, $sp, -8 ; alloc 2 words in the stack sw $s0, 4($sp) ; save caller function $s0 value in the stack sw $ra, ($sp) ; sa

    0热度

    1回答

    我很好奇GDB是如何确定值是有符号还是无符号的。我创建了一个小程序,将有符号负值存储到eax中。我已经通过调试器运行了它,并且我注意到它将eax中的值解释为负值。这是怎么回事?我也尝试过,而不生成调试信息。这里是我的短节目: section .text global _start _start: nop mov eax, [doubleWord] mov ebx,

    2热度

    1回答

    我正在调查与libgomp链接的OpenMP程序的执行流程。它使用#pragma omp parallel for。我已经知道该构建而成,除其他事项外,调用GOMP_parallel功能,这是实现如下: void GOMP_parallel (void (*fn) (void *), void *data, unsigned num_threads, unsigned int f

    -1热度

    1回答

    由于我在使用后出现问题WX_EX_COMPOSITED由于与报表类型设置不兼容,我不得不关闭它。 Disabling desktop composition causes flickering on Tab Control 现在,每当我与响应消息中的任何一个调整的主对话框一起调整TAB控制WM_SIZE,WM_SIZING,WM_WINDOWPOSCHANGED消息 invoke GetClien

    3热度

    1回答

    我试图用程序集编译应用程序。我在Linux上,x64: $ objdump -d my_app my_app: file format elf64-x86-64 就是这样。它出什么问题了?这不是几行简单的hello world,它大约有200行代码。 与GBD相同: $ gdb -q my_app Reading symbols from my_app...(no debugging

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