assembler almost finished

This commit is contained in:
aljazbrodar. 2026-01-17 19:12:24 +01:00
parent 01188ab9a8
commit 1f29ed7d14
6 changed files with 37 additions and 24 deletions

View file

@ -1,10 +1,7 @@
mojprg START 0 mojprg START 0
CLEAR B LDA TAB3
LDA @LAB
LDB LAB
LDA #12
END mojprg END mojprg
halt J halt halt J halt
LAB WORD 2 LAB WORD 2
LAB2 RESW 3 TAB RESB 31000
LAB3 WORD 3 TAB3 BYTE 1

View file

@ -1,14 +1,14 @@
***** Section <default> ***** ***** Section <default> *****
Stats: size=29 blocks=29 symbols=5 literals=0 relocations=0 Stats: size=31010 blocks=31010 symbols=5 literals=0 relocations=0
Blocks Blocks
name start size #ins #dir #sto name start size #ins #dir #sto
<default> 00000 0001D 5 4 1 <default> 00000 07922 2 4 1
Symbols Symbols
name hex dec scope kind type description name hex dec scope kind type description
LAB 00000E 14 local relative data label LAB 000006 6 local relative data label
LAB2 000011 17 local relative data label TAB 000009 9 local relative data label
LAB3 00001A 26 local relative data label TAB3 007921 31009 local relative data label
halt 00000B 11 local relative code label halt 000003 3 local relative code label
mojprg 000000 0 exported relative code label mojprg 000000 0 exported relative code label
Literals Literals
label definition label definition

View file

@ -1,10 +1,7 @@
00000 mojprg START 0 00000 mojprg START 0
00000 B430 CLEAR B 00000 007921 LDA TAB3
00002 022009 LDA @LAB 00003 END mojprg
00005 6B2006 LDB LAB 00003 3F2FFD halt J halt
00008 01000C LDA #12 00006 000002 LAB WORD 2
0000B END mojprg 00009 00....00 TAB RESB 31000
0000B 3F2FFD halt J halt 07921 01 TAB3 BYTE 1
0000E 000002 LAB WORD 2
00011 00....00 LAB2 RESW 3
0001A 000003 LAB3 WORD 3

View file

@ -1,4 +1,4 @@
Hmojprg00000000001D Hmojprg000000007922
T00000011B4300220096B200601000C3F2FFD000002 T000000090079213F2FFD000002
T00001A03000003 T0079210101
E000000 E000000

View file

@ -0,0 +1,6 @@
Harith 00000000004F
T0000001c0310003a1b20360f203603202d1f202d0f20300320242320240f202a
T00001c1e03201b27201b0f202403201523201e0f201e0320091f20180f20153f2ffd
T00003a0600000b000005
M00000105
E000000

View file

@ -94,6 +94,13 @@ var naslov_programa int
var zacetni_naslov int var zacetni_naslov int
type M_zapis struct {
odmik int
dolzina int
}
var M_tabela []M_zapis
type ukaz interface { type ukaz interface {
Velikost() int Velikost() int
GetAddr() int GetAddr() int
@ -767,6 +774,8 @@ func drugi_prehod(AST *[]ukaz) {
val.odmik = st val.odmik = st
} else { } else {
val.odmik = simbolna_tabela[val.naslov] val.odmik = simbolna_tabela[val.naslov]
m := M_zapis{val.lc + 1, 5}
M_tabela = append(M_tabela, m)
} }
case *format_D: bazno_dovoljeno = false case *format_D: bazno_dovoljeno = false
case *format_D_n: switch val.ime { case *format_D_n: switch val.ime {
@ -881,6 +890,10 @@ func generacija(AST *[]ukaz) {
} }
} }
fmt.Printf("T: %x, %x, %s\n", line_addr, line_len, line) fmt.Printf("T: %x, %x, %s\n", line_addr, line_len, line)
for _, el := range M_tabela {
fmt.Printf("M: %06x, %02x \n", el.odmik, el.dolzina)
}
fmt.Printf("END %06x", zacetni_naslov)
} }
func izpis(AST *[]ukaz) { func izpis(AST *[]ukaz) {