Ortografía: «caracter»
El Diccionario panhispánico de dudas recoge que el singular es «carácter», aunque su plural traspasa la tónica y no lleve tilde. Se puede leer más sobre esto en Fundéu: https://www.fundeu.es/recomendacion/caracter-y-caracteres-no-caracter-ni-caracteres-1386/
This commit is contained in:
parent
6f8e4d8713
commit
6a0a1abb9b
|
@ -299,7 +299,7 @@ en la segunda línea ocurren varias cosas:
|
|||
|
||||
* |0100: puede que recuerdes este número de antes - este es el valor inicial del contador de programa; la dirección del primer byte que el cpu lee. usamos esta notación para indicar que lo que esté escrito después será escrito en memoria después de esta dirección
|
||||
* LIT: esta aparece dos veces y es una instrucción uxn con las siguientes acciones: empuja el siguiente valor en memoria a la pila y hace que el contador de programa salte ese byte
|
||||
* 68: un número hexadecimal, que corresponde al código ascii del caracter 'h'
|
||||
* 68: un número hexadecimal, que corresponde al código ascii del carácter 'h'
|
||||
* 18: un número hexadecimal, que corresponde a una dirección de entrada/salida: dispositivo 1 (consola), dirección 8
|
||||
* DEO: otra instrucción uxn, que podemos definir como lo siguiente: escribir el byte dado en la dirección de dispositivo dada, ambos tomados de la pila ( byte dirección -- )
|
||||
|
||||
|
@ -319,7 +319,7 @@ mirando en la tabla de dispositivos de la referencia varvara, podemos ver que el
|
|||
|
||||
asique, el dispositivo 18 corresponde a "escribir en consola", o salida estándar.
|
||||
|
||||
¡nuestro programa está enviando el valor hexadecimal 68 (caracter 'h') a la salida estándar!
|
||||
¡nuestro programa está enviando el valor hexadecimal 68 (carácter 'h') a la salida estándar!
|
||||
|
||||
puedes ver los valores hexadecimales de los caracteres ascii en la siguiente tabla:
|
||||
|
||||
|
@ -399,7 +399,7 @@ si la dirección es de 2 bytes de longitud, es asumido que es una dirección de
|
|||
|
||||
hablemos de otra runa: #
|
||||
|
||||
éste caracter define un "hex literal": es básicamente un atajo para la instrucción LIT.
|
||||
éste carácter define un "hex literal": es básicamente un atajo para la instrucción LIT.
|
||||
|
||||
usando esta runa, podemos reescribir nuestro primer programa como:
|
||||
|
||||
|
@ -421,11 +421,11 @@ importante: recuerda que esta runa (y las otras con la palabra "literal" en su n
|
|||
|
||||
si solo queremos tener un número específico en la memoria principal, sin empujarlo a la pila, simplemente escribiríamos el número tal cual, "crudo". esta es la forma en que lo hicimos en nuestros primeros programas de arriba.
|
||||
|
||||
## runa de caracter "crudo" o "raw"
|
||||
## runa de carácter "crudo" o "raw"
|
||||
|
||||
ésta es la runa de caracter raw: '
|
||||
ésta es la runa de carácter raw: '
|
||||
|
||||
nos permite que uxnasm decodifique el valor numérico de un caracter ascii.
|
||||
nos permite que uxnasm decodifique el valor numérico de un carácter ascii.
|
||||
|
||||
nuestro "programa hola" luciría de la siguiente manera, usando las nuevas runas que acabamos de aprender:
|
||||
|
||||
|
@ -508,19 +508,19 @@ por ejemplo, podemos ver que el siguiente fragmento de código es repetido varia
|
|||
.Consola/escribe DEO ( equivalente a #18 DEO, o a LIT 18 DEO )
|
||||
```
|
||||
|
||||
podemos definir un macro llamado EMIT que tomará de la pila un byte correspondiente a un caracter y lo imprimirá en la salida estándar. para esto, necesitamos la runa % y llaves para la definición.
|
||||
podemos definir un macro llamado EMIT que tomará de la pila un byte correspondiente a un carácter y lo imprimirá en la salida estándar. para esto, necesitamos la runa % y llaves para la definición.
|
||||
|
||||
¡no olvides los espacios!
|
||||
|
||||
```
|
||||
( escribe un caracter a la salida estándar )
|
||||
%EMIT { .Consola/escribe DEO } ( caracter -- )
|
||||
( escribe un carácter a la salida estándar )
|
||||
%EMIT { .Consola/escribe DEO } ( carácter -- )
|
||||
```
|
||||
|
||||
para llamar a un macro, solo escribimos su nombre:
|
||||
|
||||
```
|
||||
( imprime caracter h )
|
||||
( imprime carácter h )
|
||||
LIT 'h EMIT
|
||||
```
|
||||
|
||||
|
@ -541,8 +541,8 @@ usando todos estos macros y runas, nuestro programa puede terminar luciendo como
|
|||
|10 @Consola [ &vector $2 &lee $1 &pad $5 &escribe $1 &error $1 ]
|
||||
|
||||
( macros )
|
||||
( imprime un caracter en la salida estándar )
|
||||
%EMIT { .Consola/escribe DEO } ( caracter -- )
|
||||
( imprime un carácter en la salida estándar )
|
||||
%EMIT { .Consola/escribe DEO } ( carácter -- )
|
||||
( imprime una nueva línea )
|
||||
%NL { #0a EMIT } ( -- )
|
||||
|
||||
|
@ -562,7 +562,7 @@ podemos "mejorar" este programa haciendo que un loop imprima los caracteres, per
|
|||
|
||||
## reubicando EMIT
|
||||
|
||||
en nuestro programa previo, el macro EMIT es llamado justo después de empujar un caracter a la pila.
|
||||
en nuestro programa previo, el macro EMIT es llamado justo después de empujar un carácter a la pila.
|
||||
|
||||
¿cómo reescribirías el programa para que primero empuje todos los caracteres y luego los emita (o haga "EMIT") todos con una secuencia como esta?
|
||||
|
||||
|
|
Loading…
Reference in New Issue