"Hello world", нужны комментарии к коду - Assembler
Формулировка задачи:
Листинг программы
- .text
- .global _start
- _start:
- movb $4, %al
- movb $1, %bl
- movl $str, %ecx
- movl $12, %edx
- int $0x80
- movb $1, %al
- str:
- .ascii "Hello world!"
- .byte 10
в gcc это можно собрать в 456 байт, но я не могу разобраться как это работает
Решение задачи: «"Hello world", нужны комментарии к коду»
textual
Листинг программы
- .text ; начало сегмента кода
- .global _start ; видимый снаружи символ (метка входа)
- _start: ; сама метка
- movb $4, %al ; загнать байт (число 4) в регистр al
- movb $1, %bl ; загнать байт (число 1) в регистр bl
- movl $str, %ecx ; поместить адрес строки в регистр ecx
- movl $12, %edx ; поместить двойное слово (число 12) в регистр edx
- int $0x80 ; системный вызов (надо в манах искать)
- movb $1, %al ; загнать байт (число 1) в регистр al (код возврата типо)
- ; объявления данных
- str:
- .ascii "Hello world!"
- .byte 10
Объяснение кода листинга программы
- .text — сегмент кода.
- .global _start — видимый снаружи символ (метка входа).
- _start: — сама метка.
- movb $4, %al — загнать байт (число 4) в регистр al.
- movb $1, %bl — загнать байт (число 1) в регистр bl.
- movl $str, %ecx — поместить адрес строки в регистр ecx.
- movl $12, %edx — поместить двойное слово (число 12) в регистр edx.
- int $0x80 — системный вызов (надо в манах искать).
- movb $1, %al — загнать байт (число 1) в регистр al (код возврата типо).
- str: — начало строки.
- .ascii
Hello world!
— строкаHello world!
в кодировке ascii. - .byte 10 — следующий байт со значением 10 (символ перевода строки).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д