inline-assembly

    0热度

    2回答

    我想问你我该怎么做位操作&,< <,>>,| |在组装中。我知道轮班和轮换意见,但我不知道用这个做热门。我可以用C编写它,但我不知道如何在汇编中实现。你能帮我解决这个问题吗? 编辑:为Intel x86 感谢 void shifting_in_C(unsigned short n) { unsigned char a = n & 255; unsigned char b =

    0热度

    1回答

    我正在编写一个简单的程序,它使用内联安全地检查给定的单词是否是回文。问题是它不会返回正确答案。在调试过程中我发现有一些错误ESI寄存器(在al值是正确的('a'),但在bl它不是(0)。我不知道我在做什么错。 #include "stdafx.h" #include <iostream> #include <string> using namespace std; int _tmain(i

    1热度

    1回答

    我想组装一个使用ARM的CRC指令的文件。汇编程序产生错误Error: selected processor does not support 'crc32b w1,w0,w0'。 有运行时检查到位,所以我们对这条指令很安全。该技术在i686和x86_64上正常工作。例如,我可以组装使用英特尔CRC intrinsics或SHA Intrinsics而不使用-mcrc或-msha(并且在没有这些功

    1热度

    4回答

    我努力学习的x86-64内联汇编,并决定实施这个非常简单的交换方法简单单a和b按升序排列: #include <stdio.h> void swap(int* a, int* b) { asm(".intel_syntax noprefix"); asm("mov eax, DWORD PTR [rdi]"); asm("mov ebx, DWORD PTR [

    -1热度

    1回答

    我是新来的组装和我决定实现一些简单的功能使用内联汇编图表,我开始与这是应该的邻接矩阵的所有元素初始化为0的构造,但我不明白我做错了什么 struct graph { int el[MAX_V][MAX_V]; int noVert; int noEdges; bool directed; graph() { _asm { mov ebx, 0 mov

    0热度

    1回答

    我在arduino中编码,但我也在我的C代码之间使用汇编代码。我想计算一个价值的罪恶。到目前为止,我有这样的代码: void setup() { // put your setup code here, to run once: } void loop() { // put your main code here, to run repeatedly: Ser

    0热度

    1回答

    我知道__asm块可以访问在这些块之外声明的变量,但我想要做的是找到一种方法来访问块外部__asm块中声明的变量。我所有关于C和C++的知识都表明,这应该是不可能的,因为C和C++在{}块中的范围都是可以的。有没有办法做到这一点,或者我是否需要在__asm块之外声明这些变量? PS:我无法从我的任何搜索中找到任何与此问题相关的答案。

    0热度

    1回答

    我想在汇编语言x86中编写代码,但由于某种原因我的程序崩溃了。这是任务。 编写一个汇编语言函数,该函数将接收用户输入的10个16位值的列表(数组)和一个编号为N的N(1到10)的用户输入的列表(数组)。 AL函数应按以下方式将第N个值移动到列表的前面 : 将所有值从元素1推送到堆栈中的元素N-1。在N元素重新定位价值元素1. 弹出堆栈,并恢复它的元素融入到地址N,N-1,...,2 这里是我的代码

    0热度

    1回答

    我使用rsp和rbp寄存器在x64内联汇编中使用VS 2015 C++进行内存索引。是否有可能没有保存和恢复push rsp, push rbp,... pop rbp,pop rsp? __asm{ mov rsi, memory mov rsp, rsi mov rbp, rsi ... movntps [rsp+rdx], ymm0 ... } 在调试模式下,mov r

    0热度

    1回答

    请考虑下面的程序: #include <stdio.h> int main(void) { int foo = 10, bar = 15; __asm__ __volatile__("add %%ebx,%%eax" :"=a"(foo) :"a"(foo), "b"(bar) ); print