私のcharポインタを取得する必要があり、その後、画面上にそれを印刷してOKかどうかを確認します。 私はファイルからテキストを読んで、私のcharポインタ(sizeof(char *)+ filesize)+ 1を入れます。最後に '\ 0'を入れます。 私は私の文字をprintfの場合*その細かい 私はそれを実行する私はちょうど私の変数にゴミを見たときにここに私のasmコードアセンブラ関数でcharポインタを取得する
; void processdata(char* filecontent);
section .text
global processdata
extern printf
section .data
FORMAT: db '%c', 10, 0 ; to break the line 10, 0
processdata:
push ebp
mov ebp, esp
mov ebx, [ebp]
push ebx
push FORMAT
call printf
add esp, 8
です。紫よう
は言った:
; void processdata(char* filecontent);
section .text
[GLOBAL processdata] ;global processdata
extern printf
section .data
FORMAT: db '%c', 0
EQUAL: db "is equal", 10, 0
processdata:
lea esi, [esp]
mov ebx, FORMAT
oook:
mov eax, [esi]
push eax
push ebx
call printf
inc esi
cmp esi, 0x0
jnz oook
おかげで、Linux上で
)何あなたはそれが表示されることを期待していますか?スタック上に '[ebp]'である 'ebx'をpushして' char'として表示しようとしています。私はそれが実際にリターンアドレスだと思う。 –
はい、どのように私は1つずつ印刷することができるようにcharポインタを取得できますか? – Lefsler
charのポインタは何ですか? –