diff --git a/ass3/zbirnik/parsing/exp.asm b/ass3/zbirnik/parsing/exp.asm index 34d440e..04d7728 100644 --- a/ass3/zbirnik/parsing/exp.asm +++ b/ass3/zbirnik/parsing/exp.asm @@ -1,10 +1,7 @@ mojprg START 0 - CLEAR B - LDA @LAB - LDB LAB - LDA #12 + LDA TAB3 END mojprg halt J halt LAB WORD 2 -LAB2 RESW 3 -LAB3 WORD 3 +TAB RESB 31000 +TAB3 BYTE 1 diff --git a/ass3/zbirnik/parsing/exp.log b/ass3/zbirnik/parsing/exp.log index 66f0f24..d6b7edc 100644 --- a/ass3/zbirnik/parsing/exp.log +++ b/ass3/zbirnik/parsing/exp.log @@ -1,14 +1,14 @@ ***** Section ***** -Stats: size=29 blocks=29 symbols=5 literals=0 relocations=0 +Stats: size=31010 blocks=31010 symbols=5 literals=0 relocations=0 Blocks name start size #ins #dir #sto - 00000 0001D 5 4 1 + 00000 07922 2 4 1 Symbols name hex dec scope kind type description - LAB 00000E 14 local relative data label - LAB2 000011 17 local relative data label - LAB3 00001A 26 local relative data label - halt 00000B 11 local relative code label + LAB 000006 6 local relative data label + TAB 000009 9 local relative data label + TAB3 007921 31009 local relative data label + halt 000003 3 local relative code label mojprg 000000 0 exported relative code label Literals label definition diff --git a/ass3/zbirnik/parsing/exp.lst b/ass3/zbirnik/parsing/exp.lst index 3a2de84..37b5601 100644 --- a/ass3/zbirnik/parsing/exp.lst +++ b/ass3/zbirnik/parsing/exp.lst @@ -1,10 +1,7 @@ 00000 mojprg START 0 -00000 B430 CLEAR B -00002 022009 LDA @LAB -00005 6B2006 LDB LAB -00008 01000C LDA #12 -0000B END mojprg -0000B 3F2FFD halt J halt -0000E 000002 LAB WORD 2 -00011 00....00 LAB2 RESW 3 -0001A 000003 LAB3 WORD 3 +00000 007921 LDA TAB3 +00003 END mojprg +00003 3F2FFD halt J halt +00006 000002 LAB WORD 2 +00009 00....00 TAB RESB 31000 +07921 01 TAB3 BYTE 1 diff --git a/ass3/zbirnik/parsing/exp.obj b/ass3/zbirnik/parsing/exp.obj index 131e607..d7ed0d2 100644 --- a/ass3/zbirnik/parsing/exp.obj +++ b/ass3/zbirnik/parsing/exp.obj @@ -1,4 +1,4 @@ -Hmojprg00000000001D -T00000011B4300220096B200601000C3F2FFD000002 -T00001A03000003 +Hmojprg000000007922 +T000000090079213F2FFD000002 +T0079210101 E000000 diff --git a/ass3/zbirnik/parsing/exp2.obj b/ass3/zbirnik/parsing/exp2.obj new file mode 100644 index 0000000..228479f --- /dev/null +++ b/ass3/zbirnik/parsing/exp2.obj @@ -0,0 +1,6 @@ +Harith 00000000004F +T0000001c0310003a1b20360f203603202d1f202d0f20300320242320240f202a +T00001c1e03201b27201b0f202403201523201e0f201e0320091f20180f20153f2ffd +T00003a0600000b000005 +M00000105 +E000000 diff --git a/ass3/zbirnik/parsing/pregledovalnik.go b/ass3/zbirnik/parsing/pregledovalnik.go index 3c1ee59..a29ed34 100644 --- a/ass3/zbirnik/parsing/pregledovalnik.go +++ b/ass3/zbirnik/parsing/pregledovalnik.go @@ -94,6 +94,13 @@ var naslov_programa int var zacetni_naslov int +type M_zapis struct { + odmik int + dolzina int +} + +var M_tabela []M_zapis + type ukaz interface { Velikost() int GetAddr() int @@ -767,6 +774,8 @@ func drugi_prehod(AST *[]ukaz) { val.odmik = st } else { 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_n: switch val.ime { @@ -881,6 +890,10 @@ func generacija(AST *[]ukaz) { } } 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) {