Menu
CoddyTech

줄바꿈의 중요성

Coddy Assembly 여정의 기초 섹션에 포함된 레슨. 45개 중 41번째.

문자열 끝에 0x0a(줄 바꿈)을 추가해 왔습니다. 하지만 깜빡하면 어떻게 될까요?

줄바꿈 없음:

텍스트가 출력되지만 커서는 같은 줄에 그대로 있습니다. 이후 출력되는 내용은 바로 옆에 표시됩니다.

줄바꿈 없는 예:

section .data
    first db 'Hello'
    firstLen equ $ - first
    second db 'World'
    secondLen equ $ - second

section .text
    mov rax, 1
    mov rdi, 1
    mov rsi, first
    mov rdx, firstLen
    syscall

    mov rax, 1
    mov rdi, 1
    mov rsi, second
    mov rdx, secondLen
    syscall

출력:

HelloWorld

공백이 없습니다. 줄 바꿈도 없습니다. 모든 것이 붙어 있습니다.

줄바꿈 포함:

section .data
    first db 'Hello', 0x0a
    firstLen equ $ - first
    second db 'World', 0x0a
    secondLen equ $ - second

출력:

Hello
World

각 문자열은 별도의 줄에 출력됩니다.

줄바꿈의 기능:

문자ASCII효과
0x0a10커서를 다음 줄의 시작 부분으로 이동합니다

흔히 하는 줄바꿈 실수:

실수결과
줄바꿈이 전혀 없음텍스트가 한 줄에 이어짐
마지막 문자열 끝에만 줄바꿈이 있음이전 문자열은 이어지고, 마지막 문자열은 다음 줄로 넘어감
문자열 중간에 줄바꿈이 있음예상치 못한 위치에서 줄이 바뀜

안전한 규칙:

한 줄에 단독으로 표시하려는 모든 문자열의 끝에 항상 0x0a를 추가하세요.

challenge icon

챌린지

줄바꿈이 없는 문자열 세 개가 주어집니다. 이 문자열들이 각각 별도의 줄에 표시되도록 출력하세요.

문자열은 다음과 같습니다.

문자열값
word1'Apple'
word2'Banana'
word3'Cherry'

요구 사항:

  • 각 문자열 끝에 줄바꿈(0x0a)을 넣어 정의하세요
  • 각 문자열의 길이를 자동으로 계산하세요
  • write 시스템 호출을 사용해 문자열 세 개를 모두 출력하세요
  • 코드 0으로 정상 종료하세요

직접 해보기

section .data
    ; TODO: 지침에 나열된 1번째 텍스트와 줄 바꿈 문자로 word1 정의
    ; TODO: 지침에 나열된 2번째 텍스트와 줄 바꿈 문자로 word2 정의
    ; TODO: 지침에 나열된 3번째 텍스트와 줄 바꿈 문자로 word3 정의
    ; TODO: 각 문자열의 길이 계산

section .text
    global _start

_start:
    ; TODO: word1 출력
    ; TODO: word2 출력
    ; TODO: word3 출력

    ; TODO: 정상적으로 종료
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨

직접 연습해 보세요: Assembly 플레이그라운드