我有搜索每個網頁的答案,但我似乎無法找到它。我一直在學習大約2個月的全網程序集語法,並且我試圖找到一種將數據存儲在內存中的方法。如何在Assembly(NASM)中不使用變量的情況下將數據存儲在內存中?
我知道sys_break:
mov,eax 45
儲量內存,我有保留的內存16KB的功能宏:
%macro reserve_mem
mov eax,45
xor ebx,ebx
int 80h
add eax,16384
mov ebx,eax
mov eax,45
int 80h
%endmacro
我也知道,當你預留字節(RESB)單詞等。在.bss部分,內存的一小部分分配給未初始化的數據。
此外,還有一個虛擬內存,可以像0x0000這樣的地址訪問,然後映射到它的實際內存位置。但是,我的問題是我試圖將數據存儲在內存中,但是我嘗試的所有內容都以分段錯誤(核心轉儲)結束,這是程序嘗試訪問它無法訪問的內存的結果。我嘗試過下面的代碼。
mov [0x0000],eax
謝謝你的幫助。
爲什麼0x0000?你只能訪問已經分配給你的進程的內存,或者靜態地用'resb'等,或者動態地用例如。 'sys_brk'。 – Michael 2014-08-27 12:02:23
感謝您的回覆,但是可以這樣做,比如將數字1放入內存中? – morgan 2014-08-27 12:07:10
@morgan至少x86支持這樣的操作。你是否熟悉C或其他編程語言?你在計算機編程領域有什麼樣的經驗?我們需要知道你的水平,才能向你提供有效的建議。 – nodakai 2014-08-27 12:21:39