2
Я пишу код для отображения строки вместе с ее эквивалентом с заглавной буквы. Вот то, что я до сих пор:ошибка сегментации в коде сборки
extern printf
SECTION .data
string1: db "hello",0
fmt1: db "%s",10,0
SECTION .text
global main
main:
enter 0,0
; display string1 as is
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
push string1 ; address of the string
push fmt1
call printf
add esp, 8
; capitalize string1
mov eax, string1 ; convert the 1st letter
mov ebx, 0
mov ebx, [eax]
sub ebx, 'a'
add ebx, 'A'
mov [eax], ebx
; display capitalized string1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
push string1 ; address of the string
push fmt1
call printf
add esp, 8
popa
leave
ret
Когда я выполняю это я получаю этот выход:
hello
Hello
Segmentation Fault
вы можете помочь мне понять, что я делаю неправильно?
Проклятье, это было глупо от меня. Благодаря! – Sally
Если у вас есть еще вопросы или проблемы, не стесняйтесь комментировать здесь. Удачи! – Steven