cpu-registers

    3热度

    1回答

    在Intel 64® and IA-32 Architectures Software Developer's Manual. Volume 1: Basic Architecture第4.3节,它说: 的近指针是32位的偏移量...一个段内。近指针用于平坦内存模型中的所有内存引用或用于分段模型中的引用,其中隐含正在访问的段的标识。 这让我想知道:隐含段寄存器是如何确定的? 我知道(%eip)和流

    0热度

    1回答

    在指令集体系结构中,是将各种指令加载到同一个通用寄存器中的R型,I型,J型指令或基于opCodes加载到不同寄存器的不同类型指令。如果不同的寄存器,那么处理器如何知道哪个指令加载到哪个寄存器?在编译器的设计中是否允许使用固定的指令加载寄存器的数量? 处理器如何区分不同类型的指令R型,I型,J型,是否基于第一个初始操作码?

    5热度

    7回答

    int类型的变量被称为“一个机器类型的字长” 但在嵌入式系统中,8位微的C编译器使用16位int(8位无符号字符),然后获取更多位, INT行为正常: 在16位微位int也是16位,并在32位微位int是32位等。 那么,有没有一个标准的方式来测试它,像BITSIZEOF(INT)? 像“sizeof”是为字节,但为位。 ,这是我的第一个想法 register c=1; int

    6热度

    2回答

    我目前正在攻读x86考试。 我没有多少运气google搜索 “:” 太常见标点符号的:/ IDIV - 符号整数除法 用法:IDIV SRC :修改标志:(AF,CF,OF,PF,SF,ZF未定义) 按来源签名的累加器二进制除法。如果源为 字节值,则AX除以“src”并将商存储在 AL中,余数存储在AH中。如果源是字值,则DX:AX是 除以“src”,并且商被存储在AL中并且余数存储在DX中。 从

    2热度

    2回答

    在克++,揍为ASM列表可以指定,例如: asm ("somecode" : : "r1", "r2", "r3"); 这意味着汇编代码改变寄存器r1,R2,R3。 现在,我改变了寄存器依赖模板参数n(该asm块是一个模板函数中),和寄存器R1,...,RN将被改变。我该如何表达?

    8热度

    7回答

    可以访问C中的32位寄存器吗?如果是,如何?如果没有,那么是否有任何方法将汇编代码嵌入到C中?顺便说一句,我使用MinGW编译器。 在此先感谢!

    3热度

    3回答

    可能重复: What does the code do? void duff(register char *to, register char *from, register int count) { register int n=(count+7)/8; switch(count%8) { case 0: do{ *to++ = *from++;

    5热度

    2回答

    我无法确定ARM NEON指令中vld4_f32和vld4q_f32之间的差异。 当我提高编码级别并开始查看汇编指令而不是信息量较小的内部函数时,混淆开始了。 我之所以要在这里使用vld4变种指令是因为,我想从我的大阵的每4位捕捉 float32_t的。 的vld4_f32内在和相应的汇编指令看起来像这样(From this link) float32x2x4_t vld4_f32 (const

    2热度

    4回答

    这里是我写在64位linux机器上的函数。 void myfunc(unsigned char* arr) //array of 8 bytes is passed by reference { unsigned long a = 0; //8 bytes unsigned char* LL = (unsigned char*) &a; LL[0] = arr[6

    24热度

    2回答

    什么x86寄存器表示movsb指令中的源位置?