📄 h8300.exp
字号:
# Check each instruction bit pattern to verify it got # assembled correctly. while 1 { expect { -re " +\[0-9\]+ 0000 17D0\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0002 17F0\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0004 1750\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0006 1770\[^\n\]*\n" { set x [expr $x+1] } eof { break } } } # This was intended to do any cleanup necessary. It kinda looks like it # isn't needed, but just in case, please keep it in for now. gas_finish # Did we find what we were looking for? If not, flunk it. if [expr $x == 4] then { pass $testname } else { fail $testname }}proc do_h8300s_add_sub {} { set testname "addsubs.s: h8300s add/sub tests" set x 0 gas_start "addsubs.s" "-al" # Check each instruction bit pattern to verify it got # assembled correctly. while 1 { expect { -re " +\[0-9\]+ 0000 8910\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0002 0819\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0004 79110020\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0008 0912\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 000a 7A110000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0010 0A92\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0012 0B04\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0014 0B85\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0016 0B96\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0018 0E89\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 001a 9210\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 001c 1889\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 001e 79310010\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0022 1901\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0024 7A310000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 002a 1A92\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 002c 1B04\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 002e 1B85\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0030 1B96\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0032 1E89\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0034 B210\[^\n\]*\n" { set x [expr $x+1] } timeout { perror "timeout\n; break } eof { break } } } # This was intended to do any cleanup necessary. It kinda looks like it # isn't needed, but just in case, please keep it in for now. gas_finish # Did we find what we were looking for? If not, flunk it. if [expr $x == 21] then { pass $testname } else { fail $testname }}proc do_h8300s_logical {} { set testname "logicals.s: h8300s logical tests" set x 0 gas_start "logicals.s" "-al" # Check each instruction bit pattern to verify it got # assembled correctly. while 1 { expect { -re " +\[0-9\]+ 0000 E910\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0002 1691\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0004 79610020\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0008 6611\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 000a 7A610000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0010 01F06611\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0014 0610\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0016 01410610\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 001a C810\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 001c 1498\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 001e 79410020\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0022 6411\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0024 7A410000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 002a 01F06411\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 002e 0410\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0030 01410410\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0034 D810\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0036 1589\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0038 79510020\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 003c 6511\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 003e 7A510000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0044 01F06511\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0048 0510\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 004a 01410510\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 004e 1788\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0050 1790\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0052 17B0\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0054 1708\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0056 1710\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0058 1730\[^\n\]*\n" { set x [expr $x+1] } timeout { perror "timeout\n; break } eof { break } } } # This was intended to do any cleanup necessary. It kinda looks like it # isn't needed, but just in case, please keep it in for now. gas_finish # Did we find what we were looking for? If not, flunk it. if [expr $x == 30] then { pass $testname } else { fail $testname }}proc do_h8300s_cbranch {} { set testname "cbranchs.s: h8300s conditional branch tests" set x 0 gas_start "cbranchs.s" "-al" # Check each instruction bit pattern to verify it got # assembled correctly. while 1 { expect { -re " +\[0-9\]+ 0000 4000\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0002 4000\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0004 4100\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0006 4100\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0008 4200\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 000a 4300\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 000c 4400\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 000e 4400\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0010 4500\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0012 4500\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0014 4600\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0016 4700\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0018 4800\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 001a 4900\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 001c 4A00\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 001e 4B00\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0020 4C00\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0022 4D00\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0024 4E00\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0026 4F00\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0028 58000000\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 002c 58000000\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0030 58100000\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0034 58100000\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0038 58200000\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 003c 58300000\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0040 58400000\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0044 58400000\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0048 58500000\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 004c 58500000\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0050 58600000\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0054 58700000\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0058 58800000\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 005c 58900000\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0060 58A00000\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0064 58B00000\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0068 58C00000\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 006c 58D00000\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0070 58E00000\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0074 58F00000\[^\n\]*\n" { set x [expr $x+1] } timeout { perror "timeout\n; break } eof { break } } } # This was intended to do any cleanup necessary. It kinda looks like it # isn't needed, but just in case, please keep it in for now. gas_finish # Did we find what we were looking for? If not, flunk it. if [expr $x == 40] then { pass $testname } else { fail $testname }}proc do_h8300s_bitops1 {} { set testname "bitops1s.s: h8300s bitops tests #1" set x 0 gas_start "bitops1s.s" "-al" # Check each instruction bit pattern to verify it got # assembled correctly. while 1 { expect { -re " +\[0-9\]+ 0000 7608\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0002 7C007600\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0006 7E407600\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 000a 6A100080\[^\n\]*\n +\[0-9\]+ +7600" { set x [expr $x+1] } -re " +\[0-9\]+ 0010 6A300001\[^\n\]*\n +\[0-9\]+ +00007600" { set x [expr $x+1] } -re " +\[0-9\]+ 0018 7208\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 001a 7D007200\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 001e 7F407200\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0022 6A180080\[^\n\]*\n +\[0-9\]+ +7200" { set x [expr $x+1] } -re " +\[0-9\]+ 0028 6A380001\[^\n\]*\n +\[0-9\]+ +00007200" { set x [expr $x+1] } -re " +\[0-9\]+ 0030 6298\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0032 7D006290\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0036 7F406290\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 003a 6A180080\[^\n\]*\n +\[0-9\]+ +6290" { set x [expr $x+1] } -re " +\[0-9\]+ 0040 6A380001\[^\n\]*\n +\[0-9\]+ +00006290" { set x [expr $x+1] } -re " +\[0-9\]+ 0048 7688\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 004a 7C007680\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 004e 7E407680\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0052 6A100080\[^\n\]*\n +\[0-9\]+ +7680" { set x [expr $x+1] } -re " +\[0-9\]+ 0058 6A300001\[^\n\]*\n +\[0-9\]+ +00007680" { set x [expr $x+1] } -re " +\[0-9\]+ 0060 7788\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0062 7C007780\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0066 7E407780\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 006a 6A100080\[^\n\]*\n +\[0-9\]+ +7780" { set x [expr $x+1] } -re " +\[0-9\]+ 0070 6A300001\[^\n\]*\n +\[0-9\]+ +00007780" { set x [expr $x+1] } timeout { perror "timeout\n; break } eof { break } } } # This was intended to do any cleanup necessary. It kinda looks like it # isn't needed, but just in case, please keep it in for now. gas_finish # Did we find what we were looking for? If not, flunk it. if [expr $x == 25] then { pass $testname } else { fail $testname }}proc do_h8300s_bitops2 {} { set testname "bitops2s.s: h8300s bitops tests #2" set x 0 gas_start "bitops2s.s" "-al" # Check each instruction bit pattern to verify it got # assembled correctly. while 1 { expect { -re " +\[0-9\]+ 0000 7488\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0002 7C007480\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0006 7E407480\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 000a 6A100080\[^\n\]*\n +\[0-9\]+ +7480" { set x [expr $x+1] } -re " +\[0-9\]+ 0010 6A300001\[^\n\]*\n +\[0-9\]+ +00007480" { set x [expr $x+1] } -re " +\[0-9\]+ 0018 6788\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 001a 7D006780\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 001e 7F406780\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0022 6A180080\[^\n\]*\n +\[0-9\]+ +6780" { set x [expr $x+1] } -re " +\[0-9\]+ 0028 6A380001\[^\n\]*\n +\[0-9\]+ +00006780" { set x [expr $x+1] } -re " +\[0-9\]+ 0030 7588\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0032 7C007580\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0036 7E407580\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 003a 6A100080\[^\n\]*\n +\[0-9\]+ +7580" { set x [expr $x+1] } -re " +\[0-9\]+ 0040 6A300001\[^\n\]*\n +\[0-9\]+ +00007580" { set x [expr $x+1] } -re " +\[0-9\]+ 0048 7708\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 004a 7C007700\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 004e 7E407700\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0052 6A100080\[^\n\]*\n +\[0-9\]+ +7700" { set x [expr $x+1] } -re " +\[0-9\]+ 0058 6A300001\[^\n\]*\n +\[0-9\]+ +00007700" { set x [expr $x+1] } timeout { perror "timeout\n; break } eof { break } } } # This was intended to do any cleanup necessary. It kinda looks like it # isn't needed, but just in case, please keep it in for now. gas_finish # Did we find what we were looking for? If not, flunk it. if [expr $x == 20] then { pass $testname } else { fail $testname }}proc do_h8300s_bitops3 {} { set testname "bitops3s.s: h8300s bitops tests #3" set x 0 gas_start "bitops3s.s" "-al" # Check each instruction bit pattern to verify it got # assembled correctly. while 1 { expect { -re " +\[0-9\]+ 0000 7108\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0002 7D007100\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0006 7F407100\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 000a 6A180080\[^\n\]*\n +\[0-9\]+ +7100" { set x [expr $x+1] } -re " +\[0-9\]+ 0010 6A380001\[^\n\]*\n +\[0-9\]+ +00007100" { set x [expr $x+1] } -re " +\[0-9\]+ 0018 6198\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 001a 7D006190\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 001e 7F406190\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0022 6A180080\[^\n\]*\n +\[0-9\]+ +6190" { set x [expr $x+1] } -re " +\[0-9\]+ 0028 6A380001\[^\n\]*\n +\[0-9\]+ +00006190" { set x [expr $x+1] } -re " +\[0-9\]+ 0030 7008\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0032 7D007000\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0036 7F407000\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 003a 6A180080\[^\n\]*\n +\[0-9\]+ +7000" { set x [expr $x+1] } -re " +\[0-9\]+ 0040 6A380001\[^\n\]*\n +\[0-9\]+ +00007000" { set x [expr $x+1] } -re " +\[0-9\]+ 0048 6098\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 004a 7D006090\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 004e 7F406090\[^\n\]*\n" { set x [expr $x+1] } -re " +\[0-9\]+ 0052 6A180080\[^\n\]*\n +\[0-9\]+ +6090" { set x [expr $x+1] } -re " +\[0-9\]+ 0058 6A380001\[^\n\]*\n +\[0-9\]+ +00006090" { set x [expr $x+1] } time
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -