]> j8takagi.net git repositories - yacasl2.git/commitdiff
casl2とcomet2コマンドに、逆アセンブル結果を表示する-rオプションを追加
authorj8takagi <j8takagi@nifty.com>
Wed, 1 Jul 2026 12:22:52 +0000 (21:22 +0900)
committerj8takagi <j8takagi@nifty.com>
Wed, 1 Jul 2026 12:22:52 +0000 (21:22 +0900)
src/casl2.c
src/comet2.c
test/system/casl2_opt/opt_h/0.txt
test/system/casl2_opt/opt_opterr/0.txt
test/system/comet2_opt/opt_h/0.txt
test/system/comet2_opt/opt_opterr/0.txt

index 641fd5a90f0ab0f3851f7814dc374def4af4f6af..99ea41048728974fc227868a12fd065f9145b398 100644 (file)
@@ -34,6 +34,7 @@ static struct option longopts[] = {
     { "tracelogical", no_argument, NULL, 'T' },
     { "dump", no_argument, NULL, 'd' },
     { "monitor", no_argument, NULL, 'm' },
+    { "reverse", no_argument, NULL, 'r' },
     { "memorysize", required_argument, NULL, 'M' },
     { "clocks", required_argument, NULL, 'C' },
     { "version", no_argument, NULL, 'v' },
@@ -83,7 +84,7 @@ int main(int argc, char *argv[])
     const char *version = PACKAGE_VERSION;
     const char *cmdversion = "casl2 of YACASL2 version %s\n";
     const char *usage =
-        "Usage: %s [-slLaAtTdmvh] [-oO[<OBJECTFILE>]] [-M <MEMORYSIZE>] [-C <CLOCKS>] FILE1[ FILE2  ...]\n";
+        "Usage: %s [-slLaAtTdmrvh] [-oO[<OBJECTFILE>]] [-M <MEMORYSIZE>] [-C <CLOCKS>] FILE1[ FILE2  ...]\n";
 
     /* エラーの定義 */
     cerr_init();
@@ -92,7 +93,7 @@ int main(int argc, char *argv[])
     addcerrlist_exec();
 
     /* オプションの処理 */
-    while((opt = getopt_long(argc, argv, "tTdslLmao::O::AM:C:vh", longopts, NULL)) != -1) {
+    while((opt = getopt_long(argc, argv, "tTdslLmaro::O::AM:C:vh", longopts, NULL)) != -1) {
         switch(opt) {
         case 's':
             asmode.src = true;
@@ -130,6 +131,10 @@ int main(int argc, char *argv[])
             break;
         case 'm':
             execmode.step = true;
+            execmode.reverse = true;
+            break;
+        case 'r':
+            execmode.reverse = true;
             break;
         case 'M':
             if((memsize = memsize_str2word(optarg)) == 0) {
index 73796ca83badf6e990cd8e05202c39436d17388a..c3101f113728cde3cccb68044c5b2f5b06c32937 100644 (file)
@@ -7,19 +7,19 @@
  * comet2コマンドのオプション
  */
 static struct option longopts[] = {
-    {"trace", no_argument, NULL, 't'},
-    {"tracearithmetic", no_argument, NULL, 't'},
-    {"tracelogical", no_argument, NULL, 'T'},
-    {"dump", no_argument, NULL, 'd'},
-    {"monitor", no_argument, NULL, 'm'},
-    {"memorysize", required_argument, NULL, 'M'},
-    {"clocks", required_argument, NULL, 'C'},
-    {"version", no_argument, NULL, 'v' },
-    {"help", no_argument, NULL, 'h'},
-    {0, 0, 0, 0},
+    { "trace", no_argument, NULL, 't' },
+    { "tracearithmetic", no_argument, NULL, 't' },
+    { "tracelogical", no_argument, NULL, 'T' },
+    { "dump", no_argument, NULL, 'd' },
+    { "monitor", no_argument, NULL, 'm' },
+    { "reverse", no_argument, NULL, 'r' },
+    { "memorysize", required_argument, NULL, 'M'},
+    { "clocks", required_argument, NULL, 'C' },
+    { "version", no_argument, NULL, 'v' },
+    { "help", no_argument, NULL, 'h' },
+    { 0, 0, 0, 0},
 };
 
-
 /**
  * @brief comet2コマンドのメイン
  *
@@ -36,7 +36,7 @@ int main(int argc, char *argv[])
     int stat = 0;
     const char *version = PACKAGE_VERSION;
     const char *cmdversion = "comet2 of YACASL2 version %s\n";
-    const char *usage = "Usage: %s [-tTdmvh] [-M <MEMORYSIZE>] [-C <CLOCKS>] FILE\n";
+    const char *usage = "Usage: %s [-tTdmrvh] [-M <MEMORYSIZE>] [-C <CLOCKS>] FILE\n";
 
     /* エラーの定義 */
     cerr_init();
@@ -44,7 +44,7 @@ int main(int argc, char *argv[])
     addcerrlist_exec();
 
     /* オプションの処理 */
-    while((opt = getopt_long(argc, argv, "tTdmM:C:vh", longopts, NULL)) != -1) {
+    while((opt = getopt_long(argc, argv, "tTdmrM:C:vh", longopts, NULL)) != -1) {
         switch(opt) {
         case 't':
             execmode.trace = true;
@@ -58,6 +58,10 @@ int main(int argc, char *argv[])
             break;
         case 'm':
             execmode.monitor = true;
+            execmode.reverse = true;
+            break;
+        case 'r':
+            execmode.reverse = true;
             break;
         case 'M':
             if((memsize = memsize_str2word(optarg)) == 0) {
index 06d7a628c130d1e9eb94095bce419a04bbf57995..3d4689964c013b094fec073abe99c044f121fc46 100644 (file)
@@ -1 +1 @@
-Usage: ../../../../casl2 [-slLaAtTdmvh] [-oO[<OBJECTFILE>]] [-M <MEMORYSIZE>] [-C <CLOCKS>] FILE1[ FILE2  ...]
+Usage: ../../../../casl2 [-slLaAtTdmrvh] [-oO[<OBJECTFILE>]] [-M <MEMORYSIZE>] [-C <CLOCKS>] FILE1[ FILE2  ...]
index 06d7a628c130d1e9eb94095bce419a04bbf57995..3d4689964c013b094fec073abe99c044f121fc46 100644 (file)
@@ -1 +1 @@
-Usage: ../../../../casl2 [-slLaAtTdmvh] [-oO[<OBJECTFILE>]] [-M <MEMORYSIZE>] [-C <CLOCKS>] FILE1[ FILE2  ...]
+Usage: ../../../../casl2 [-slLaAtTdmrvh] [-oO[<OBJECTFILE>]] [-M <MEMORYSIZE>] [-C <CLOCKS>] FILE1[ FILE2  ...]
index ad4ad387701125654fc5447ba246ef50df3e95ec..c8e87b0da7ba08394717d6d2a73d5be53fe96d56 100644 (file)
@@ -1 +1 @@
-Usage: ../../../../comet2 [-tTdmvh] [-M <MEMORYSIZE>] [-C <CLOCKS>] FILE
+Usage: ../../../../comet2 [-tTdmrvh] [-M <MEMORYSIZE>] [-C <CLOCKS>] FILE
index ad4ad387701125654fc5447ba246ef50df3e95ec..c8e87b0da7ba08394717d6d2a73d5be53fe96d56 100644 (file)
@@ -1 +1 @@
-Usage: ../../../../comet2 [-tTdmvh] [-M <MEMORYSIZE>] [-C <CLOCKS>] FILE
+Usage: ../../../../comet2 [-tTdmrvh] [-M <MEMORYSIZE>] [-C <CLOCKS>] FILE