Код: Выделить всё
.macro write_mark, data
adr_l x25, mydebug2 // x25 = &mydebug2
adr_l x26, myidx // x26 = &myidx
ldr x27, [x26] // x27 = myidx
mov x26, \data // x26 = data
//add x27, x27, x27, LSL #1 // x27, 3 // to double word address
lsl x27, x27, #3 // x27, 3 // to double word address
add x25, x25, x27
str x26, [x25] // mydebug2[myidx] = data
adr_l x26, myidx // x26 = &myidx
ldr x27, [x26] // x27 = myidx
add x27, x27, 1 // x27(myidx) ++
str x27, [x26] // myidx++
.endm
Код: Выделить всё
adrp x1, init_pg_dir
write_mark 0x5555
bl __enable_mmu
write_mark 0x6666
Как в этом случае загрузить регистры x25, x26 как виртуальный адрес??
Подробнее здесь: https://stackoverflow.com/questions/793 ... ernel-code
Мобильная версия