Essa questão recente sobre assembly chamou minha atenção, não pelas instruções obviamente redundantes, mas pelas sys_write
saídas.
O programa tenta gerar todos os 256 caracteres ASCII e faz isso começando com ASCII 48, passando de 255 a 0 e terminando com 47.
A saída que o solicitante gentilmente fornece é:
└─$ ./example_displayascii
0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������
Eu poderia aceitar que os 128 códigos ASCII estendidos fossem impressos dessa forma, mas o que aconteceu com os códigos de 0 a 31, e especialmente os códigos de 32 a 47, que claramente devem ser caracteres imprimíveis!
Minhas perguntas:
- O que o Linux normalmente faz quando confrontado
sys_write
com os códigos (de controle) de 0 a 31? - E especificamente, o que acontece quando alguém termina uma linha com o par 10, 13 em vez do normal 10 apenas?