Menu
Coddy logo textTech

Wyświetlanie dwóch ciągów

Część sekcji Podstawy ścieżki Assembly w Coddy. Lekcja 40 z 45.

Wiesz już, jak wyświetlić jeden ciąg znaków. A co, jeśli chcesz wyświetlić dwa oddzielne ciągi znaków? Na przykład „Hello ”, a potem „World!”?

Po prostu wywołujesz dwukrotnie wywołanie systemowe write, po razie dla każdego ciągu znaków.

Jak to działa:

; Pierwsze wypisanie
mov rax, 1
mov rdi, 1
mov rsi, firstMsg
mov rdx, firstLen
syscall

; Drugie wypisanie
mov rax, 1
mov rdi, 1
mov rsi, secondMsg
mov rdx, secondLen
syscall

Przykład:

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

    second db 'World!', 0x0a
    secondLen equ $-second

section .text
    global _start

_start:
    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

    mov rax, 60
    mov rdi, 0
    syscall

Wynik:

Hello World!

Dlaczego drukować dwa ciągi zamiast jednego?

PowódPrzykład
Ponowne użycieWydrukuj to samo powitanie z różnymi imionami
ElastycznośćDrukuj różne komunikaty w zależności od warunków
OrganizacjaPrzechowuj różne komunikaty osobno w pamięci

Możesz wypisać dowolną liczbę ciągów znaków:

Po prostu powtórz wywołanie systemowe write dla każdego ciągu znaków.

challenge icon

Wyzwanie

Dane są dwa ciągi znaków: partOne o wartości 'Good' oraz partTwo o wartości 'bye'. Oba mają już znak nowej linii na końcu.

Napisz kod, który wyświetli partOne, a następnie partTwo, tak aby wynik wyglądał następująco:

Good

bye

Sekcja danych i wywołanie systemowe kończące program są już podane. Musisz napisać tylko dwa wywołania systemowe write.

Spróbuj swoich sił

section .data
    partOne db 'Good', 0x0a
    partOneLen equ $-partOne
    partTwo db 'bye', 0x0a
    partTwoLen equ $-partTwo

section .text
    global _start

_start:
    ; TODO: Wypisz partOne za pomocą wywołania systemowego write
    ; TODO: Wypisz partTwo za pomocą wywołania systemowego write

    mov rax, 60
    mov rdi, 0
    syscall
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online Assembly