errores y traducción de código hasta línea 331
This commit is contained in:
parent
62b10011f9
commit
99c53687fe
|
@ -236,7 +236,7 @@ en sistemas de tipo forth podemos ver el siguiente tipo de notación para expres
|
||||||
ADD ( a b -- a+b )
|
ADD ( a b -- a+b )
|
||||||
```
|
```
|
||||||
|
|
||||||
esto significa que ADD tome el primer elemento desde arriba 'b', luego toma el siguiente primer elemento 'a', y empuja devuelta el resultado de sumar a+b.
|
esto significa que ADD toma el primer elemento desde arriba 'b', luego toma el siguiente primer elemento 'a', y empuja devuelta el resultado de sumar a+b.
|
||||||
|
|
||||||
ahora que estamos en eso, hay una instrucción complementaria, SUB (resta) (opcode 19), que toma los dos elementos superiores de la pila, los resta, y empuja a la pila el resultado:
|
ahora que estamos en eso, hay una instrucción complementaria, SUB (resta) (opcode 19), que toma los dos elementos superiores de la pila, los resta, y empuja a la pila el resultado:
|
||||||
|
|
||||||
|
@ -248,24 +248,24 @@ nota que el orden de los operandos es similar al de la división que discutimos
|
||||||
|
|
||||||
## un primer programa
|
## un primer programa
|
||||||
|
|
||||||
escribamos el siguiente programa en nuestro editor de texto favorito, y guardémoslo como hello.tal:
|
escribamos el siguiente programa en nuestro editor de texto favorito, y guardémoslo como hola.tal:
|
||||||
|
|
||||||
```
|
```
|
||||||
( hello.tal )
|
( hola.tal )
|
||||||
|0100 LIT 68 LIT 18 DEO
|
|0100 LIT 68 LIT 18 DEO
|
||||||
```
|
```
|
||||||
|
|
||||||
ensamblémoslo y corrámoslo:
|
ensamblémoslo y corrámoslo:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ ./bin/uxnasm hello.tal bin/hello.rom && ./bin/uxnemu bin/hello.rom
|
$ ./bin/uxnasm hola.tal bin/hola.rom && ./bin/uxnemu bin/hola.rom
|
||||||
```
|
```
|
||||||
|
|
||||||
veremos una salida con el siguiente aspecto:
|
veremos una salida con el siguiente aspecto:
|
||||||
|
|
||||||
```
|
```
|
||||||
Assembled bin/hello.rom(5 bytes), 0 labels, 0 macros.
|
Assembled bin/hola.rom(5 bytes), 0 labels, 0 macros.
|
||||||
Uxn loaded[bin/hello.rom].
|
Uxn loaded[bin/hola.rom].
|
||||||
Device added #00: system, at 0x0000
|
Device added #00: system, at 0x0000
|
||||||
Device added #01: console, at 0x0010
|
Device added #01: console, at 0x0010
|
||||||
Device added #02: screen, at 0x0020
|
Device added #02: screen, at 0x0020
|
||||||
|
@ -294,7 +294,7 @@ la última 'h' que vemos es la salida de nuestro programa. cambia el 68 a, por e
|
||||||
acabamos de correr el siguiente programa en uxntal:
|
acabamos de correr el siguiente programa en uxntal:
|
||||||
|
|
||||||
```
|
```
|
||||||
( hello.tal )
|
( hola.tal )
|
||||||
|0100 LIT 68 LIT 18 DEO
|
|0100 LIT 68 LIT 18 DEO
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -313,7 +313,7 @@ leyendo el programa de izquierda a derecha, podemos ver el siguiente comportamie
|
||||||
* la instrucción LIT empuja el número 68 a la pila
|
* la instrucción LIT empuja el número 68 a la pila
|
||||||
* la instrucción LIT empuja el número 18 a la pila
|
* la instrucción LIT empuja el número 18 a la pila
|
||||||
* la instrucción DEO toma el elemento superior de la pila (18) y lo usa como dirección de dispositivo
|
* la instrucción DEO toma el elemento superior de la pila (18) y lo usa como dirección de dispositivo
|
||||||
* la instrucción DEO toma el elemento superiir de la pila (68) y lo usa como byte a escribir
|
* la instrucción DEO toma el elemento superior de la pila (68) y lo usa como byte a escribir
|
||||||
* la instrucción DEO escribe el byte a la dirección de dispositivo, dejando la pila vacía
|
* la instrucción DEO escribe el byte a la dirección de dispositivo, dejando la pila vacía
|
||||||
|
|
||||||
¿y qué es el dispositivo de entrada/salida con la dirección 18?
|
¿y qué es el dispositivo de entrada/salida con la dirección 18?
|
||||||
|
|
Loading…
Reference in New Issue