section .text
global _start ;makes symbol "_start" global (visible for linker)
_start: ;linker's default entry point
call display
mov eax,1 ;system call number (sys_exit)
int 0x80 ;call kernel
; displays all valid printable ASCII characters (32-126), and new-line after.
display:
; prepare in memory string with all ASCII chars and new-line
mov al,' ' ; first valid printable ASCII
mov edi, allAsciiChars
mov ecx, edi ; this address will be used also for "write" int 0x80
nextChar:
mov [edi], al
inc edi
inc al
cmp al, 126
jbe nextChar
; add one more new line at end
mov byte [edi], `\n`
; display the prepared "string" in one "write" call
mov eax, 4 ; sys_write, ecx is already set
mov ebx, 1 ; file descriptor STDOUT
lea edx, [edi+1] ; edx = edi+1 (memory address beyond last char)
sub edx, ecx ; edx = length of generated string
int 0x80
ret
section .bss allAsciiChars: resb 126-' '+1+1 ; reserve space for ASCII characters and \n
в основном решение для печати значений таблицы ascii ^^ однако мне также нужно распечатать их на основе диапазона, основанного на вводе, например INPUT 'G', INPUT 'L', который затем выводит каждый символ из " GL "отделен". " как если бы кто-то мог помочь, как OUTPUT "GHIJKL", он был бы очень признателен, я довольно новичок в сборке, и я использую Nasm, и я нашел это решение для таблицы ascii отсюда, кстати