0
printf를 호출하여 어셈블리에서 문자열을 인쇄하려고합니다. 어셈블리 printf - 문자열의 첫 번째 문자 만 출력합니다.
내 어셈블리 코드 :. 그러나mov dword[ebx + 0], '"'
mov dword[ebx + 4], 'h'
mov dword[ebx + 8], 'e'
mov dword[ebx + 12], 'l'
mov dword[ebx + 16], 'l'
mov dword[ebx + 20], 'o'
mov dword[ebx + 24], '"'
mov dword[ebx + 28], 0
push ebx
push formatString
call printf
add esp, 8
...
formatString db '%s', 10, 0
나는이 단지 첫 번째 문자 인쇄 실행 - ' "'가 아니라 전체 단어 ("안녕하세요 ")를
많은 감사
그러나 printf에 char *를 기대하는 두 번째 매개 변수가 없습니까? 이것이 ebx에서 제공하는 것입니까? – user973758
예. 'ebx'는 메모리에있는 바이트 배열 *의 주소입니다. 문제는 일련의'dword'를 메모리에로드하는 것입니다. –
아아, 고마워. – user973758