| Linha | Etiqueta | Instrução | Comentário |
|---|---|---|---|
| 10
20 30 40 50 |
Soma: | LD A,B
LD C,20 ADD A,C RET NZ JR SOMA |
; Carrega A com B
; Carrega C com 20 ; Soma A com C ; Retorna se A<>0 |
10 WRTVRM: EQU &H4DAssim, a etiqueta WRTVRM será sempre o valor de memória &H4D.
BLOAD"RSCII.BIN",R ↵
10 ORG &HC000 20 WRTVRM: EQU &H4D 30 LD A,&H41 40 LD HL,0 50 LD B,&H80 60 INICIO: CALL WRTVRM 70 INC HL 80 INC A; 90 CP B 100 JP NZ,INICIOTecle CONTROL+STOP para sair da digitação do programa.
GT "exerc1.asm" ↵
A extensão ".ASM" é muito utilizada para os fontes em Assembly no MSX.
CT "exerc1.asm" ↵
LT ; Lista todo o programa.
LT 10 ; Lista a linha 10.
LT 20-30 ; Lista da linha 20 à 30.
; Stop pausa a listagem e espaço continua.
EN ↵ No. de Opción: 3 ↵ Modo (H/D): H ↵A tecla "Stop" dá uma pausa na listagem e "Espaço" continua a listar.
RSC II MSX 1.0 C000 10 ORG &HC000 004D 20 WRTVRM: EQU &H4D C000 3E41 30 LD A,&H41 C002 210000 40 LD HL,0 C005 0680 50 LD B,&H80 C007 CD4D00 60 INICIO: CALL WRTVRM C00A 23 70 INC HL C00B 3C 80 INC A C00C B8 90 CP B C00D C207C0 100 JP NZ,INICIO Etiquetas ausentes: 0 Errores detectados: 0 ----------------------------------------------- Etiquetas - Macros: WRTVRM: 77 - 004D INICIO: 49159 - C007A primeira coluna marca o endereço inicial de cada instrução, enquanto que a segunda contém o código em LM de cada instrução.
GB"exerc1.bin",&hC000,&HC00F
10 FOR E=&HC000 TO &HC00F
20 READ A$
30 POKE E,VAL("&H"+A$)
40 NEXT E
50 DEFUSR=&HC000
60 X=USR(0)
100 DATA 3E,41,21,00,00,06,80,CD,4D,00,23,3C,B8,C2,07,C0
DEFUSR=&HC000 ↵ Ok X=USR(0) ↵
BLOAD"exerc1.bin",R ↵
10 ORG &HC000 20 LD A,5 30 LD B,4 40 ADD A,B 50 RET
SI &HC000 ↵ Modo (H/D): H ↵
Slot: 11111111 I R P C
00000000 0028 C000
A B C D E H L I X I Y SZ H PNC
00 . 0000 0000 0000 0000 0000 00000000
00 . 0000 0000 0000 00000000
SP: FAE0
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
41 A 41 A 41 A 41 A 41 A 0000
55 U 55 U 55 U 55 U 55 U FAE0
C000 3E05 LD A,&H05
A B C D E H L I X I Y SZ H PNC 00 . 0000 0000 0000 0000 0000 00000000 <--- Normais 00 . 0000 0000 0000 00000000 <--- Linha
C000 3E05 LD A,&H05
Slot: 11111111 I R P C
00000000 0028 C002
A B C D E H L I X I Y SZ H PNC
05 . 0000 0000 0000 0000 0000 00000000
00 . 0000 0000 0000 00000000
SP: FAE0
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
41 A 41 A 41 A 41 A 41 A 0000
55 U 55 U 55 U 55 U 55 U FAE0
C002 0604 LD B,&H04
Após a execução da instrução LD A,&H05, o registrador A é alterado. Além disso, PC passa para a próxima instrução. As mudanças ocasionadas pela instrução executada são destacadas em verde.
Slot: 11111111 I R P C
00000000 0028 C004
A B C D E H L I X I Y SZ H PNC
05 . 0400 0000 0000 0000 0000 00000000
00 . 0000 0000 0000 00000000
SP: FAE0
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
41 A 41 A 41 A 41 A 41 A 0000
55 U 55 U 55 U 55 U 55 U FAE0
C004 80 ADD A,B
Após a execução da instrução LD B,&H04, o registrador B é alterado. PC passa para a próxima instrução.
Slot: 11111111 I R P C
00000000 0028 C005
A B C D E H L I X I Y SZ H PNC
09 . 0400 0000 0000 0000 0000 00000000
00 . 0000 0000 0000 00000000
SP: FAE0
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
00 . 00 . 00 . 00 . 00 . 0000
41 A 41 A 41 A 41 A 41 A 0000
55 U 55 U 55 U 55 U 55 U FAE0
C005 C9 RET
Após a execução da instrução ADD A,B, o registrador A é alterado. PC passa para a próxima instrução.| Pseudo- comando |
Sintaxe | Exemplo | Função |
|---|---|---|---|
| ORG | ORG x1 | ORG &HD000 | Define endereço para inserir instruções. |
| DEFB | DEFB x1,x2,...,xn | DEFB 1,2,&HCD | Insere o valor do byte na memória. |
| DEFM | DEFM "<cadeia>" | DEFM "Maracana" | Insere uma string na memória. |
| DEFW | DEFW x1,x2,...,xn | DEFW &HCD00 | Insere de dois em dois bytes (word). |
| DEFS | DEFS n | DEFS 40 | Insere na memória n bytes com o valor 0. É uma reserva de espaço. |
| EQU | <nome>:EQU <end> | INI: EQU &H00CD | Define uma etiqueta com um valor concreto. |
| END | END | END | Termina o programa. |
| MAC | <nome>:MAC | MULTI:MAC | Define o inicio de uma macro. |
| ENDM | ENDM | ENDM | Define o final de uma macro. |
| IF | IF x1 | IF | Marca o inicio do trecho do programa, que será assemblado somente se x1 for verdadeiro. |
| ENDI | ENDI | ENDI | Dá finalidade à condição IF |
| << Anterior | Assembly | Próxima >> |