@@ -3322,6 +3322,10 @@ test_cases:
3322
3322
0xf3, 0x6c, # rep insb byte ptr es:[di], dx
3323
3323
0x6d, # insw word ptr es:[di], dx
3324
3324
0xf3, 0x6d, # rep insw word ptr es:[di], dx
3325
+ 0x6e, # outsb dx, byte ptr [si]
3326
+ 0xf3, 0x6e, # rep outsb dx, byte ptr [si]
3327
+ 0x6f, # outsw dx, word ptr [si]
3328
+ 0xf3, 0x6f, # rep outsb dx, word ptr [si]
3325
3329
]
3326
3330
arch : " x86"
3327
3331
options : [ CS_OPT_DETAIL, CS_MODE_16 ]
@@ -3578,8 +3582,44 @@ test_cases:
3578
3582
prefix : [ X86_PREFIX_REP, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
3579
3583
opcode : [ 0x6d, 0x00, 0x00, 0x00 ]
3580
3584
eflags : [ X86_EFLAGS_TEST_DF ]
3581
- regs_read : [ dx, flags, cx, es, di ]
3585
+ regs_read : [ dx, flags, cx, es, di]
3582
3586
regs_write : [ di, cx ]
3587
+ -
3588
+ asm_text : " outsb dx, byte ptr [si]"
3589
+ details :
3590
+ x86 :
3591
+ prefix : [ X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
3592
+ opcode : [ 0x6e, 0x00, 0x00, 0x00 ]
3593
+ eflags : [ X86_EFLAGS_TEST_DF ]
3594
+ regs_read : [ dx, si, flags, ds ]
3595
+ regs_write : [ si ]
3596
+ -
3597
+ asm_text : " rep outsb dx, byte ptr [si]"
3598
+ details :
3599
+ x86 :
3600
+ prefix : [ X86_PREFIX_REP, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
3601
+ opcode : [ 0x6e, 0x00, 0x00, 0x00 ]
3602
+ eflags : [ X86_EFLAGS_TEST_DF ]
3603
+ regs_read : [ dx, si, flags, ds, cx]
3604
+ regs_write : [ si, cx ]
3605
+ -
3606
+ asm_text : " outsw dx, word ptr [si]"
3607
+ details :
3608
+ x86 :
3609
+ prefix : [ X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
3610
+ opcode : [ 0x6f, 0x00, 0x00, 0x00 ]
3611
+ eflags : [ X86_EFLAGS_TEST_DF ]
3612
+ regs_read : [ dx, si, flags, ds ]
3613
+ regs_write : [ si ]
3614
+ -
3615
+ asm_text : " rep outsw dx, word ptr [si]"
3616
+ details :
3617
+ x86 :
3618
+ prefix : [ X86_PREFIX_REP, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
3619
+ opcode : [ 0x6f, 0x00, 0x00, 0x00 ]
3620
+ eflags : [ X86_EFLAGS_TEST_DF ]
3621
+ regs_read : [ dx, si, flags, ds, cx]
3622
+ regs_write : [ si, cx ]
3583
3623
3584
3624
-
3585
3625
input :
@@ -3613,6 +3653,10 @@ test_cases:
3613
3653
0xf3, 0x6c, # rep insb byte ptr es:[edi], dx
3614
3654
0x6d, # insd dword ptr es:[edi], dx
3615
3655
0xf3, 0x6d, # rep insd dword ptr es:[edi], dx
3656
+ 0x6e, # outsb dx, byte ptr [esi]
3657
+ 0xf3, 0x6e, # rep outsb dx, byte ptr [esi]
3658
+ 0x6f, # outsd dx, dword ptr [esi]
3659
+ 0xf3, 0x6f, # rep outsd dx, dword ptr [esi]
3616
3660
]
3617
3661
arch : " x86"
3618
3662
options : [ CS_OPT_DETAIL, CS_MODE_32 ]
@@ -3871,6 +3915,42 @@ test_cases:
3871
3915
eflags : [ X86_EFLAGS_TEST_DF ]
3872
3916
regs_read : [ dx, edi, eflags, ecx, es ]
3873
3917
regs_write : [ edi, ecx ]
3918
+ -
3919
+ asm_text : " outsb dx, byte ptr [esi]"
3920
+ details :
3921
+ x86 :
3922
+ prefix : [ X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
3923
+ opcode : [ 0x6e, 0x00, 0x00, 0x00 ]
3924
+ eflags : [ X86_EFLAGS_TEST_DF ]
3925
+ regs_read : [ dx, esi, eflags, ds ]
3926
+ regs_write : [ esi ]
3927
+ -
3928
+ asm_text : " rep outsb dx, byte ptr [esi]"
3929
+ details :
3930
+ x86 :
3931
+ prefix : [ X86_PREFIX_REP, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
3932
+ opcode : [ 0x6e, 0x00, 0x00, 0x00 ]
3933
+ eflags : [ X86_EFLAGS_TEST_DF ]
3934
+ regs_read : [ dx, esi, eflags, ds, ecx ]
3935
+ regs_write : [ esi, ecx ]
3936
+ -
3937
+ asm_text : " outsd dx, dword ptr [esi]"
3938
+ details :
3939
+ x86 :
3940
+ prefix : [ X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
3941
+ opcode : [ 0x6f, 0x00, 0x00, 0x00 ]
3942
+ eflags : [ X86_EFLAGS_TEST_DF ]
3943
+ regs_read : [ dx, esi, eflags, ds ]
3944
+ regs_write : [ esi ]
3945
+ -
3946
+ asm_text : " rep outsd dx, dword ptr [esi]"
3947
+ details :
3948
+ x86 :
3949
+ prefix : [ X86_PREFIX_REP, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
3950
+ opcode : [ 0x6f, 0x00, 0x00, 0x00 ]
3951
+ eflags : [ X86_EFLAGS_TEST_DF ]
3952
+ regs_read : [ dx, esi, eflags, ds, ecx ]
3953
+ regs_write : [ esi, ecx ]
3874
3954
3875
3955
-
3876
3956
input :
@@ -3916,6 +3996,10 @@ test_cases:
3916
3996
0xf3, 0x6c, # rep insb byte ptr [rdi], dx
3917
3997
0x6d, # insd dword ptr [rdi], dx
3918
3998
0xf3, 0x6d, # rep insd dword ptr [rdi], dx
3999
+ 0x6e, # outsb dx, byte ptr [rsi]
4000
+ 0xf3, 0x6e, # rep outsb dx, byte ptr [rsi]
4001
+ 0x6f, # outsd dx, dword ptr [rsi]
4002
+ 0xf3, 0x6f, # rep outsd dx, dword ptr [rsi]
3919
4003
]
3920
4004
arch : " x86"
3921
4005
options : [ CS_OPT_DETAIL, CS_MODE_64 ]
@@ -4294,3 +4378,39 @@ test_cases:
4294
4378
eflags : [ X86_EFLAGS_TEST_DF ]
4295
4379
regs_read : [ dx, rdi, rflags, rcx ]
4296
4380
regs_write : [ rdi, rcx ]
4381
+ -
4382
+ asm_text : " outsb dx, byte ptr [rsi]"
4383
+ details :
4384
+ x86 :
4385
+ prefix : [ X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
4386
+ opcode : [ 0x6e, 0x00, 0x00, 0x00 ]
4387
+ eflags : [ X86_EFLAGS_TEST_DF ]
4388
+ regs_read : [ dx, rsi, rflags ]
4389
+ regs_write : [ rsi ]
4390
+ -
4391
+ asm_text : " rep outsb dx, byte ptr [rsi]"
4392
+ details :
4393
+ x86 :
4394
+ prefix : [ X86_PREFIX_REP, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
4395
+ opcode : [ 0x6e, 0x00, 0x00, 0x00 ]
4396
+ eflags : [ X86_EFLAGS_TEST_DF ]
4397
+ regs_read : [ dx, rsi, rflags, rcx ]
4398
+ regs_write : [ rsi, rcx ]
4399
+ -
4400
+ asm_text : " outsd dx, dword ptr [rsi]"
4401
+ details :
4402
+ x86 :
4403
+ prefix : [ X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
4404
+ opcode : [ 0x6f, 0x00, 0x00, 0x00 ]
4405
+ eflags : [ X86_EFLAGS_TEST_DF ]
4406
+ regs_read : [ dx, rsi, rflags ]
4407
+ regs_write : [ rsi ]
4408
+ -
4409
+ asm_text : " rep outsd dx, dword ptr [rsi]"
4410
+ details :
4411
+ x86 :
4412
+ prefix : [ X86_PREFIX_REP, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
4413
+ opcode : [ 0x6f, 0x00, 0x00, 0x00 ]
4414
+ eflags : [ X86_EFLAGS_TEST_DF ]
4415
+ regs_read : [ dx, rsi, rflags, rcx ]
4416
+ regs_write : [ rsi, rcx ]
0 commit comments