Заменить
dateTime.setText(app.getTotalDl());
С
dateTime.setText(""+app.getTotalDl());
[rbp-0x8]
и [rbp-0x10]
- две разные локальные переменные. Ваш код полностью отличается от дизассемблированного кода.
со следующим кодом c,
{
int64_t a; // [rbp-0x8] is a
int64_t *p; // [rbp-0x10] is p; not *p
...
}
Программа должна получить *(p+1)
(размер 1 int64 равен 8 байтам) в RAX
.
MOV RAX, [rbp-0x10] ; RAX <-- p
ADD RAX, 8 ; RAX <-- p + 1
MOV RAX, [RAX] ; RAX <-- *(p + 1)
Ваш код должен получить совершенно другую переменную a
.
MOV RAX, [rbp-0x8] ; RAX <-- a
Я так не думаю:
а)
0x00000000004005ef <+50>: mov rax,QWORD PTR [rbp-0x10] ; move the 8bytes starting at the address
; [rbp-0x10] to rax
0x00000000004005f3 <+54>: add rax,0x8 ; rax = rax + 0x08
0x00000000004005f7 <+58>: mov rax,QWORD PTR [rax] ; move the 8bytes starting at the address
; [rax] to rax
б)
0x00000000004005ef <+50>: mov rax,QWORD PTR [rbp-0x8] ; move the 8bytes starting at the address
; [rbp-0x8] to rax
«а)» выглядит так часть кода, которая загружает адрес, применяет (целочисленное) смещение и разыменовывает адрес. Однако, «b)» , начальный адрес отличается (хотя значение с этого другого адреса не читается, хотя).