]> j8takagi.net git repositories - yacasl2.git/commitdiff
casl2revなどの逆アセンブルで、DC/DSの表示を修正
authorj8takagi <j8takagi@nifty.com>
Thu, 18 Jun 2026 09:57:31 +0000 (18:57 +0900)
committerj8takagi <j8takagi@nifty.com>
Thu, 18 Jun 2026 09:57:31 +0000 (18:57 +0900)
12 files changed:
src/disassemble.c
test/system/casl2rev/dc/0.txt [new file with mode: 0644]
test/system/casl2rev/dc/Makefile [new file with mode: 0644]
test/system/casl2rev/dc/cmd [new file with mode: 0755]
test/system/casl2rev/dc/dc.casl [new file with mode: 0644]
test/system/casl2rev/dc/desc.txt [new file with mode: 0644]
test/system/casl2rev/ds/0.txt [new file with mode: 0644]
test/system/casl2rev/ds/Makefile [new file with mode: 0644]
test/system/casl2rev/ds/cmd [new file with mode: 0755]
test/system/casl2rev/ds/desc.txt [new file with mode: 0644]
test/system/casl2rev/ds/ds.casl [new file with mode: 0644]
test/system/casl2rev/io/0.txt

index 3f5a81539ce71c7fffcc3130c81ac37eb0835156..2fcc604a520712ff2010f17cc1ac5bfa57319598 100644 (file)
@@ -137,9 +137,9 @@ void disassemble_ds(WORD wcnt, WORD pradr)
 
     cnt = fprintf(stdout, "        DS      %-5d ", wcnt);
     disassemble_puts_code(cnt, pradr, 1, (WORD []){0});
-    for(int i = 0; i < wcnt - 1; i++) {
+    for(int i = 1; i < wcnt; i++) {
         fprintf(stdout, "\n");
-        disassemble_puts_code(0, pradr+1, 1, (WORD []){0});
+        disassemble_puts_code(0, pradr+i, 1, (WORD []){0});
     }
 }
 
@@ -207,7 +207,7 @@ bool disassemble_file(const char *file)
                     i += zcnt - 1;
                 }
             }
-        } else if(cmd == 0) {
+        } else if(cmd == 0 || cmdname ==NULL) {
             disassemble_dc(word, i);
         } else {
             if(cmdtype == R_ADR_X || cmdtype == ADR_X) {
diff --git a/test/system/casl2rev/dc/0.txt b/test/system/casl2rev/dc/0.txt
new file mode 100644 (file)
index 0000000..f6f40f7
--- /dev/null
@@ -0,0 +1,7 @@
+MAIN    START
+        RET                     ; #0000: #8100
+        DC      0               ; #0001: #0000 ::     0 = #0000 = 0000000000000000
+        DC      1               ; #0002: #0001 ::     1 = #0001 = 0000000000000001
+        DC      65535           ; #0003: #FFFF :: 65535 = #FFFF = 1111111111111111
+        DC      65535           ; #0004: #FFFF :: 65535 = #FFFF = 1111111111111111
+        END
diff --git a/test/system/casl2rev/dc/Makefile b/test/system/casl2rev/dc/Makefile
new file mode 100644 (file)
index 0000000..ced7c64
--- /dev/null
@@ -0,0 +1,7 @@
+include ../Define.mk
+include ../Test.mk
+
+cmd: io.o
+
+io.o: ../../../../as/misc/io.casl
+       ../../../../casl2 -O$@ $<
diff --git a/test/system/casl2rev/dc/cmd b/test/system/casl2rev/dc/cmd
new file mode 100755 (executable)
index 0000000..2db90c2
--- /dev/null
@@ -0,0 +1 @@
+../../../../casl2rev dc.o
diff --git a/test/system/casl2rev/dc/dc.casl b/test/system/casl2rev/dc/dc.casl
new file mode 100644 (file)
index 0000000..5d14428
--- /dev/null
@@ -0,0 +1,7 @@
+MAIN    START
+        RET
+        DC      0
+        DC      1
+        DC      65535
+        DC      #FFFF
+        END
diff --git a/test/system/casl2rev/dc/desc.txt b/test/system/casl2rev/dc/desc.txt
new file mode 100644 (file)
index 0000000..d13a44b
--- /dev/null
@@ -0,0 +1 @@
+DCを用いたプログラムを逆アセンブル
diff --git a/test/system/casl2rev/ds/0.txt b/test/system/casl2rev/ds/0.txt
new file mode 100644 (file)
index 0000000..d343d0a
--- /dev/null
@@ -0,0 +1,11 @@
+MAIN    START
+        RET                     ; #0000: #8100
+        DS      8               ; #0001: #0000
+                                ; #0002: #0000
+                                ; #0003: #0000
+                                ; #0004: #0000
+                                ; #0005: #0000
+                                ; #0006: #0000
+                                ; #0007: #0000
+                                ; #0008: #0000
+        END
diff --git a/test/system/casl2rev/ds/Makefile b/test/system/casl2rev/ds/Makefile
new file mode 100644 (file)
index 0000000..ced7c64
--- /dev/null
@@ -0,0 +1,7 @@
+include ../Define.mk
+include ../Test.mk
+
+cmd: io.o
+
+io.o: ../../../../as/misc/io.casl
+       ../../../../casl2 -O$@ $<
diff --git a/test/system/casl2rev/ds/cmd b/test/system/casl2rev/ds/cmd
new file mode 100755 (executable)
index 0000000..da4efe3
--- /dev/null
@@ -0,0 +1 @@
+../../../../casl2rev ds.o
diff --git a/test/system/casl2rev/ds/desc.txt b/test/system/casl2rev/ds/desc.txt
new file mode 100644 (file)
index 0000000..acaf760
--- /dev/null
@@ -0,0 +1 @@
+DSを用いたプログラムを逆アセンブル
diff --git a/test/system/casl2rev/ds/ds.casl b/test/system/casl2rev/ds/ds.casl
new file mode 100644 (file)
index 0000000..a6be58b
--- /dev/null
@@ -0,0 +1,4 @@
+MAIN    START
+        RET
+        DS      8
+        END
index 2b6dd983ffc7def0788ff8259e93888aef4c62fb..b3d8edf7177bc1e83d2373e7881f5e12b5973bc2 100644 (file)
@@ -96,69 +96,69 @@ MAIN    START
         DC      12              ; #0086: #000C ::    12 = #000C = 0000000000001100
         DS      65              ; #0087: #0000
                                 ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
-                                ; #0088: #0000
+                                ; #0089: #0000
+                                ; #008A: #0000
+                                ; #008B: #0000
+                                ; #008C: #0000
+                                ; #008D: #0000
+                                ; #008E: #0000
+                                ; #008F: #0000
+                                ; #0090: #0000
+                                ; #0091: #0000
+                                ; #0092: #0000
+                                ; #0093: #0000
+                                ; #0094: #0000
+                                ; #0095: #0000
+                                ; #0096: #0000
+                                ; #0097: #0000
+                                ; #0098: #0000
+                                ; #0099: #0000
+                                ; #009A: #0000
+                                ; #009B: #0000
+                                ; #009C: #0000
+                                ; #009D: #0000
+                                ; #009E: #0000
+                                ; #009F: #0000
+                                ; #00A0: #0000
+                                ; #00A1: #0000
+                                ; #00A2: #0000
+                                ; #00A3: #0000
+                                ; #00A4: #0000
+                                ; #00A5: #0000
+                                ; #00A6: #0000
+                                ; #00A7: #0000
+                                ; #00A8: #0000
+                                ; #00A9: #0000
+                                ; #00AA: #0000
+                                ; #00AB: #0000
+                                ; #00AC: #0000
+                                ; #00AD: #0000
+                                ; #00AE: #0000
+                                ; #00AF: #0000
+                                ; #00B0: #0000
+                                ; #00B1: #0000
+                                ; #00B2: #0000
+                                ; #00B3: #0000
+                                ; #00B4: #0000
+                                ; #00B5: #0000
+                                ; #00B6: #0000
+                                ; #00B7: #0000
+                                ; #00B8: #0000
+                                ; #00B9: #0000
+                                ; #00BA: #0000
+                                ; #00BB: #0000
+                                ; #00BC: #0000
+                                ; #00BD: #0000
+                                ; #00BE: #0000
+                                ; #00BF: #0000
+                                ; #00C0: #0000
+                                ; #00C1: #0000
+                                ; #00C2: #0000
+                                ; #00C3: #0000
+                                ; #00C4: #0000
+                                ; #00C5: #0000
+                                ; #00C6: #0000
+                                ; #00C7: #0000
         DC      10              ; #00C8: #000A ::    10 = #000A = 0000000000001010 = '\n'
         DC      1               ; #00C9: #0001 ::     1 = #0001 = 0000000000000001
         DC      10              ; #00CA: #000A ::    10 = #000A = 0000000000001010 = '\n'