Замена подстроки с заданной формой другой в C #

Как вы это сделали, вызовите один раз, чтобы извлечь текущее дно кучи, а затем переместите верхнюю часть кучи (что является значением brk). Однако ваш код неверен при использовании 64-битного набора регистров r.x. Если ваш Linux 32-разрядный (что подразумевается при использовании 45 для номера системного вызова), тогда вы хотите установить 32-битный регистр:

mov eax, 45                            ; brk                                                                                                                                                                                  
mov ebx, 0                             ; arg 1: 0 = fail returning brk value in rax                                                                                                                               
int 0x80                               ; syscall
mov dword ptr [brk_firstLocation], rax ; save result
mov eax, 45                            ; brk                                                                                                                                                                                  
mov ebx, 4                             ; arg 1: allocate 4 bytes for a 32-bit int                                                                                                                                
int 0x80                               ; syscall

mov eax, dword ptr [brk_firstLocation] ; reload rax with allocated memory address.
mov dword ptr [eax], 42 ; use result: store 42 in newly allocated storage

Конечно, вы можете повторно загрузить сохраненный значение для повторного использования столько раз, сколько необходимо.

-12
задан paqogomez 13 September 2014 в 14:43
поделиться