📄 mova.s
字号:
# Hitachi H8 testcase 'mova'# mach(): h8sx# as(h8300): --defsym sim_cpu=0# as(h8300h): --defsym sim_cpu=1# as(h8300s): --defsym sim_cpu=2# as(h8sx): --defsym sim_cpu=3# ld(h8300h): -m h8300helf# ld(h8300s): -m h8300self# ld(h8sx): -m h8300sxelf .include "testutils.inc" .datafoo: .long 0x01010101 .long 0x10101010 .long 0x11111111 startmovabl16_reg8: set_grs_a5a5 set_ccr_zero mova/b.l @(1:16, r2l.b), er3 test_cc_clear test_gr_a5a5 0 ; Make sure other regs not affected test_gr_a5a5 1 test_gr_a5a5 2 test_h_gr32 0xa6 er3 test_gr_a5a5 4 test_gr_a5a5 5 test_gr_a5a5 6 test_gr_a5a5 7movabl16_reg16: set_grs_a5a5 set_ccr_zero mova/b.l @(1:16, r2.w), er3 test_cc_clear test_gr_a5a5 0 ; Make sure other regs not affected test_gr_a5a5 1 test_gr_a5a5 2 test_h_gr32 0xa5a6 er3 test_gr_a5a5 4 test_gr_a5a5 5 test_gr_a5a5 6 test_gr_a5a5 7movabl32_reg8: set_grs_a5a5 set_ccr_zero mova/b.l @(1:32, r2l.b), er3 test_cc_clear test_gr_a5a5 0 ; Make sure other regs not affected test_gr_a5a5 1 test_gr_a5a5 2 test_h_gr32 0xa6 er3 test_gr_a5a5 4 test_gr_a5a5 5 test_gr_a5a5 6 test_gr_a5a5 7movabl32_reg16: set_grs_a5a5 set_ccr_zero mova/b.l @(1:32, r2.w), er3 test_cc_clear test_gr_a5a5 0 ; Make sure other regs not affected test_gr_a5a5 1 test_gr_a5a5 2 test_h_gr32 0xa5a6 er3 test_gr_a5a5 4 test_gr_a5a5 5 test_gr_a5a5 6 test_gr_a5a5 7movawl16_reg8: set_grs_a5a5 set_ccr_zero mova/w.l @(1:16, r2l.b), er3 test_cc_clear test_gr_a5a5 0 ; Make sure other regs not affected test_gr_a5a5 1 test_gr_a5a5 2 test_h_gr32 0x14b er3 test_gr_a5a5 4 test_gr_a5a5 5 test_gr_a5a5 6 test_gr_a5a5 7movawl16_reg16: set_grs_a5a5 set_ccr_zero mova/w.l @(1:16, r2.w), er3 test_cc_clear test_gr_a5a5 0 ; Make sure other regs not affected test_gr_a5a5 1 test_gr_a5a5 2 test_h_gr32 0x14b4b er3 test_gr_a5a5 4 test_gr_a5a5 5 test_gr_a5a5 6 test_gr_a5a5 7movawl32_reg8: set_grs_a5a5 set_ccr_zero mova/w.l @(1:32, r2l.b), er3 test_cc_clear test_gr_a5a5 0 ; Make sure other regs not affected test_gr_a5a5 1 test_gr_a5a5 2 test_h_gr32 0x14b er3 test_gr_a5a5 4 test_gr_a5a5 5 test_gr_a5a5 6 test_gr_a5a5 7movawl32_reg16: set_grs_a5a5 set_ccr_zero mova/w.l @(1:32, r2.w), er3 test_cc_clear test_gr_a5a5 0 ; Make sure other regs not affected test_gr_a5a5 1 test_gr_a5a5 2 test_h_gr32 0x14b4b er3 test_gr_a5a5 4 test_gr_a5a5 5 test_gr_a5a5 6 test_gr_a5a5 7movall16_reg8: set_grs_a5a5 set_ccr_zero mova/l.l @(1:16, r2l.b), er3 test_cc_clear test_gr_a5a5 0 ; Make sure other regs not affected test_gr_a5a5 1 test_gr_a5a5 2 test_h_gr32 0x295 er3 test_gr_a5a5 4 test_gr_a5a5 5 test_gr_a5a5 6 test_gr_a5a5 7movall16_reg16: set_grs_a5a5 set_ccr_zero mova/l.l @(1:16, r2.w), er3 test_cc_clear test_gr_a5a5 0 ; Make sure other regs not affected test_gr_a5a5 1 test_gr_a5a5 2 test_h_gr32 0x29695 er3 test_gr_a5a5 4 test_gr_a5a5 5 test_gr_a5a5 6 test_gr_a5a5 7movall32_reg8: set_grs_a5a5 set_ccr_zero mova/l.l @(1:32, r2l.b), er3 test_cc_clear test_gr_a5a5 0 ; Make sure other regs not affected test_gr_a5a5 1 test_gr_a5a5 2 test_h_gr32 0x295 er3 test_gr_a5a5 4 test_gr_a5a5 5 test_gr_a5a5 6 test_gr_a5a5 7movall32_reg16: set_grs_a5a5 set_ccr_zero mova/l.l @(1:32, r2.w), er3 test_cc_clear test_gr_a5a5 0 ; Make sure other regs not affected test_gr_a5a5 1 test_gr_a5a5 2 test_h_gr32 0x29695 er3 test_gr_a5a5 4 test_gr_a5a5 5 test_gr_a5a5 6 test_gr_a5a5 7t02_mova: set_grs_a5a5 set_ccr_zero mov.l #0x01010101, er1 mova/b.c @(0x1234:16,r1l.b),er1 ; 7A891234 test_h_gr32 0x1235, er1 ; 1s mov.l #0x01010101, er1 mova/b.c @(0x1234:16,r1.w),er1 ; 7A991234 test_h_gr32 0x1335, er1 ; 2s mov.l #0x01010101, er1 mova/w.c @(0x1234:16,r1l.b),er1 ; 7AA91234 test_h_gr32 0x1236, er1 ; 3s mov.l #0x01010101, er1 mova/w.c @(0x1234:16,r1.w),er1 ; 7AB91234 test_h_gr32 0x1436, er1 ; 4s mov.l #0x01010101, er1 mova/l.c @(0x1234:16,r1l.b),er1 ; 7AC91234 test_h_gr32 0x1238, er1 ; 5s mov.l #0x01010101, er1 mova/l.c @(0x1234:16,r1.w),er1 ; 7AD91234 test_h_gr32 0x1638, er1 ; 6s mov.l #0x01010101, er1 mova/b.c @(0x12345678:32,r1l.b),er1 ; 7A8112345678 test_h_gr32 0x12345679, er1 ; 7s mov.l #0x01010101, er1 mova/b.c @(0x12345678:32,r1.w),er1 ; 7A9112345678 test_h_gr32 0x12345779, er1 ; 8s mov.l #0x01010101, er1 mova/w.c @(0x12345678:32,r1l.b),er1 ; 7AA112345678 test_h_gr32 0x1234567a, er1 ; 9s mov.l #0x01010101, er1 mova/w.c @(0x12345678:32,r1.w),er1 ; 7AB112345678 test_h_gr32 0x1234587a, er1 ; 10s mov.l #0x01010101, er1 mova/l.c @(0x12345678:32,r1l.b),er1 ; 7AC112345678 test_h_gr32 0x1234567c, er1 ; 11s mov.l #0x01010101, er1 mova/l.c @(0x12345678:32,r1.w),er1 ; 7AD112345678 test_h_gr32 0x12345a7c, er1 ; 12st02b: mov.l #0x01010101, er3 mova/b.l @(0x1234:16,r3l.b),er1 ; 78B87A891234 test_h_gr32 0x1235, er1 ; 1 mova/b.l @(0x1234:16,r3.w),er1 ; 78397A991234 test_h_gr32 0x1335, er1 ; 2 mova/w.l @(0x1234:16,r3l.b),er1 ; 78B87AA91234 test_h_gr32 0x1236, er1 ; 3 mova/w.l @(0x1234:16,r3.w),er1 ; 78397AB91234 test_h_gr32 0x1436, er1 ; 4 mova/l.l @(0x1234:16,r3l.b),er1 ; 78B87AC91234 test_h_gr32 0x1238, er1 ; 5 mova/l.l @(0x1234:16,r3.w),er1 ; 78397AD91234 test_h_gr32 0x1638, er1 ; 6 mova/b.l @(0x12345678:32,r3l.b),er1 ; 78B87A8112345678 test_h_gr32 0x12345679, er1 ; 7 mova/b.l @(0x12345678:32,r3.w),er1 ; 78397A9112345678 test_h_gr32 0x12345779, er1 ; 8 mova/w.l @(0x12345678:32,r3l.b),er1 ; 78B87AA112345678 test_h_gr32 0x1234567a, er1 ; 9 mova/w.l @(0x12345678:32,r3.w),er1 ; 78397AB112345678 test_h_gr32 0x1234587a, er1 ; 10 mova/l.l @(0x12345678:32,r3l.b),er1 ; 78B87AC112345678 test_h_gr32 0x1234567c, er1 ; 11 mova/l.l @(0x12345678:32,r3.w),er1 ; 78397AD112345678 test_h_gr32 0x12345a7c, er1 ; 12 test_h_gr32 0x01010101, er3t02c: mov.l #foo, er2 mova/b.l @(0x1234:16,@er2.b),er1 ;017F02811234 test_h_gr32 0x1235, er1 ; 13 test_h_gr32 foo, er2 mova/b.l @(0x1234:16,@(0x1:2,er2).b),er1 ;017F12811234 test_h_gr32 0x1235, er1 ; 18 test_h_gr32 foo, er2 mova/b.l @(0x1234:16,@er2+.b),er1 ;017F82811234 test_h_gr32 0x1235, er1 ; 14 test_h_gr32 foo+1, er2 mova/b.l @(0x1234:16,@-er2.b),er1 ;017FB2811234 test_h_gr32 0x1235, er1 ; 17 test_h_gr32 foo, er2 mova/b.l @(0x1234:16,@+er2.b),er1 ;017F92811234 test_h_gr32 0x1235, er1 ; 16 test_h_gr32 foo+1, er2 mova/b.l @(0x1234:16,@er2-.b),er1 ;017FA2811234 test_h_gr32 0x1235, er1 ; 15 test_h_gr32 foo, er2t02d: mov.l #4, er2 mova/b.l @(0x1234:16, @(foo:16, er2).b), er1 test_h_gr32 0x1244, er1 ; 19 mova/b.l @(0x1234:16, @(foo:16, r2L.b).b), er1 test_h_gr32 0x1244, er1 ; 21 mova/b.l @(0x1234:16, @(foo:16, r2.w).b), er1 test_h_gr32 0x1244, er1 ; 22 mova/b.l @(0x1234:16, @(foo:16, er2.l).b), er1 test_h_gr32 0x1244, er1 ; 23 mov.l #4, er2 mova/b.l @(0x1234:16, @(foo:32, er2).b), er1 test_h_gr32 0x1244, er1 ; 20 mova/b.l @(0x1234:16, @(foo:32, r2L.b).b), er1 test_h_gr32 0x1244, er1 ; 24 mova/b.l @(0x1234:16, @(foo:32, r2.w).b), er1 test_h_gr32 0x1244, er1 ; 25 mova/b.l @(0x1234:16, @(foo:32, er2.l).b), er1 test_h_gr32 0x1244, er1 ; 26 mova/b.l @(0x1234:16,@foo:16.b),er1 test_h_gr32 0x1235, er1 ; 27 mova/b.l @(0x1234:16,@foo:32.b),er1 test_h_gr32 0x1235, er1 ; 28t02e: mov.l #foo, er2 mova/b.l @(0x1234:16,@er2.w),er1 ;015F02911234 test_h_gr32 0x1335, er1 ; 29 test_h_gr32 foo, er2 mova/b.l @(0x1234:16,@(0x2:2,er2).w),er1 ;015F12911234 test_h_gr32 0x1335, er1 ; 34 test_h_gr32 foo, er2 mova/b.l @(0x1234:16,@er2+.w),er1 ;015F82911234 test_h_gr32 0x1335, er1 ; 30 test_h_gr32 foo+2, er2 mova/b.l @(0x1234:16,@-er2.w),er1 ;015FB2911234 test_h_gr32 0x1335, er1 ; 33 test_h_gr32 foo, er2 mova/b.l @(0x1234:16,@+er2.w),er1 ;015F92911234 test_h_gr32 0x1335, er1 ; 32 test_h_gr32 foo+2, er2 mova/b.l @(0x1234:16,@er2-.w),er1 ;015FA2911234 test_h_gr32 0x1335, er1 ; 31 test_h_gr32 foo, er2 mov.l #4, er2 mova/b.l @(0x1234:16, @(foo:16, er2).w), er1 test_h_gr32 0x2244, er1 ; 35 shar.l er2 mova/b.l @(0x1234:16, @(foo:16, r2L.b).w), er1 test_h_gr32 0x2244, er1 ; 37 mova/b.l @(0x1234:16, @(foo:16, r2.w).w), er1 test_h_gr32 0x2244, er1 ; 38 mova/b.l @(0x1234:16, @(foo:16, er2.l).w), er1 test_h_gr32 0x2244, er1 ; 39 mov.l #4, er2 mova/b.l @(0x1234:16, @(foo:32, er2).w), er1 test_h_gr32 0x2244, er1 ; 36 shar.l er2 mova/b.l @(0x1234:16, @(foo:32, r2L.b).w), er1 test_h_gr32 0x2244, er1 ; 40 mova/b.l @(0x1234:16, @(foo:32, r2.w).w), er1 test_h_gr32 0x2244, er1 ; 41 mova/b.l @(0x1234:16, @(foo:32, er2.l).w), er1 test_h_gr32 0x2244, er1 ; 42 mova/b.l @(0x1234:16,@foo:16.w),er1 ;015F40919ABC1234 test_h_gr32 0x1335, er1 ; 43 mova/b.l @(0x1234:16,@foo:32.w),er1 ;015F48919ABCDEF01234 test_h_gr32 0x1335, er1 ; 44t02f: mov.l #foo, er2 mova/w.l @(0x1234:16,@er2.b),er1 ;017F02A11234 test_h_gr32 0x1236, er1 ; 45 mova/w.l @(0x1234:16,@(0x1:2,er2).b),er1 ;017F12A11234 test_h_gr32 0x1236, er1 ; 50 mova/w.l @(0x1234:16,@er2+.b),er1 ;017F82A11234 test_h_gr32 0x1236, er1 ; 46 test_h_gr32 foo+1, er2 mova/w.l @(0x1234:16,@-er2.b),er1 ;017FB2A11234 test_h_gr32 0x1236, er1 ; 49 test_h_gr32 foo, er2 mova/w.l @(0x1234:16,@+er2.b),er1 ;017F92A11234 test_h_gr32 0x1236, er1 ; 48 test_h_gr32 foo+1, er2 mova/w.l @(0x1234:16,@er2-.b),er1 ;017FA2A11234 test_h_gr32 0x1236, er1 ; 47 test_h_gr32 foo, er2t02g: mov.l #4, er2 mova/w.l @(0x1234:16, @(foo:16, er2).b), er1 test_h_gr32 0x1254, er1 ; 51 mova/w.l @(0x1234:16, @(foo:16, r2L.b).b), er1 test_h_gr32 0x1254, er1 ; 53 mova/w.l @(0x1234:16, @(foo:16, r2.w).b), er1 test_h_gr32 0x1254, er1 ; 54 mova/w.l @(0x1234:16, @(foo:16, er2.l).b), er1 test_h_gr32 0x1254, er1 ; 55 mov.l #4, er2 mova/w.l @(0x1234:16, @(foo:32, er2).b), er1 test_h_gr32 0x1254, er1 ; 52 mova/w.l @(0x1234:16, @(foo:32, r2L.b).b), er1 test_h_gr32 0x1254, er1 ; 56 mova/w.l @(0x1234:16, @(foo:32, r2.w).b), er1 test_h_gr32 0x1254, er1 ; 57 mova/w.l @(0x1234:16, @(foo:32, er2.l).b), er1 test_h_gr32 0x1254, er1 ; 58 mova/w.l @(0x1234:16,@foo:16.b),er1 ;017F40A19ABC1234 test_h_gr32 0x1236, er1 ; 59 (can't test -- points into the woods) mova/w.l @(0x1234:16,@foo:32.b),er1 ;017F48A19ABCDEF01234 test_h_gr32 0x1236, er1 ; 60 (can't test -- points into the woods)t02h: mov.l #foo, er2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -