inline-assembly

    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

    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