Печать «массива» из .bss в gdb
Мой код сборки nasm x86 содержит следующее:
; The code should mimic the following C-code:
; int a[10];
; for (int i = 0; i < 10; i++){
; a[i] = i;
; }
SECTION .data
arraylen dd 10
SECTION .bss
array RESD 10
SECTION .text
global main
main:
mov ecx, 0
mov eax, 0
loop:
inc ecx
mov dword [array+eax*4], ecx
inc eax
cmp ecx, arraylen
jl loop
end:
mov ebx, 0
mov eax, 1
int 0x80
Теперь я хочу проверить, работает ли этот код в GDB. Тем не менее, как мне распечататьarray
?
print array
только возвращает$1 = 1
.
print array + X
к сожалению, это арифметическая операция, т.е.print array + 50
на самом деле печатает 1 + 50 =51
а не несуществующий 51-й элемент массива.