@@ -3317,7 +3317,11 @@ test_cases:
3317
3317
0xa4, # movsb byte ptr es:[di], byte ptr [si]
3318
3318
0xf3,0xa4, # rep movsb byte ptr es:[di], byte ptr [si]
3319
3319
0xa5, # movsw word ptr es:[di], word ptr [si{}}
3320
- 0xf3,0xa5 # rep movsw word ptr es:[di], word ptr [si]
3320
+ 0xf3,0xa5, # rep movsw word ptr es:[di], word ptr [si]
3321
+ 0x6c, # insb byte ptr es:[di], dx
3322
+ 0xf3, 0x6c, # rep insb byte ptr es:[di], dx
3323
+ 0x6d, # insw word ptr es:[di], dx
3324
+ 0xf3, 0x6d, # rep insw word ptr es:[di], dx
3321
3325
]
3322
3326
arch : " x86"
3323
3327
options : [ CS_OPT_DETAIL, CS_MODE_16 ]
@@ -3540,6 +3544,42 @@ test_cases:
3540
3544
eflags : [ X86_EFLAGS_TEST_DF ]
3541
3545
regs_read : [ di, si, flags, ds, cx, es ]
3542
3546
regs_write : [ di, si, cx ]
3547
+ -
3548
+ asm_text : " insb byte ptr es:[di], dx"
3549
+ details :
3550
+ x86 :
3551
+ prefix : [ X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
3552
+ opcode : [ 0x6c, 0x00, 0x00, 0x00 ]
3553
+ eflags : [ X86_EFLAGS_TEST_DF ]
3554
+ regs_read : [ dx, flags, es, di ]
3555
+ regs_write : [ di ]
3556
+ -
3557
+ asm_text : " rep insb byte ptr es:[di], dx"
3558
+ details :
3559
+ x86 :
3560
+ prefix : [ X86_PREFIX_REP, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
3561
+ opcode : [ 0x6c, 0x00, 0x00, 0x00 ]
3562
+ eflags : [ X86_EFLAGS_TEST_DF ]
3563
+ regs_read : [ dx, flags, cx, es, di ]
3564
+ regs_write : [ di, cx ]
3565
+ -
3566
+ asm_text : " insw word ptr es:[di], dx"
3567
+ details :
3568
+ x86 :
3569
+ prefix : [ X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
3570
+ opcode : [ 0x6d, 0x00, 0x00, 0x00 ]
3571
+ eflags : [ X86_EFLAGS_TEST_DF ]
3572
+ regs_read : [ dx, flags, es, di ]
3573
+ regs_write : [ di ]
3574
+ -
3575
+ asm_text : " rep insw word ptr es:[di], dx"
3576
+ details :
3577
+ x86 :
3578
+ prefix : [ X86_PREFIX_REP, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
3579
+ opcode : [ 0x6d, 0x00, 0x00, 0x00 ]
3580
+ eflags : [ X86_EFLAGS_TEST_DF ]
3581
+ regs_read : [ dx, flags, cx, es, di ]
3582
+ regs_write : [ di, cx ]
3543
3583
3544
3584
-
3545
3585
input :
@@ -3569,7 +3609,10 @@ test_cases:
3569
3609
0xf3, 0xa4, # rep movsb byte ptr es:[edi], byte ptr [esi]
3570
3610
0xa5, # movsw dword ptr es:[edi], dword ptr [esi]
3571
3611
0xf3, 0xa5, # rep movsw dword ptr es:[edi], dword ptr [esi]
3572
-
3612
+ 0x6c, # insb byte ptr es:[edi], dx
3613
+ 0xf3, 0x6c, # rep insb byte ptr es:[edi], dx
3614
+ 0x6d, # insd dword ptr es:[edi], dx
3615
+ 0xf3, 0x6d, # rep insd dword ptr es:[edi], dx
3573
3616
]
3574
3617
arch : " x86"
3575
3618
options : [ CS_OPT_DETAIL, CS_MODE_32 ]
@@ -3792,6 +3835,42 @@ test_cases:
3792
3835
eflags : [ X86_EFLAGS_TEST_DF ]
3793
3836
regs_read : [ edi, esi, eflags, ds, ecx, es ]
3794
3837
regs_write : [ edi, esi, ecx ]
3838
+ -
3839
+ asm_text : " insb byte ptr es:[edi], dx"
3840
+ details :
3841
+ x86 :
3842
+ prefix : [ X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
3843
+ opcode : [ 0x6c, 0x00, 0x00, 0x00 ]
3844
+ eflags : [ X86_EFLAGS_TEST_DF ]
3845
+ regs_read : [ dx, eflags, es, edi ]
3846
+ regs_write : [ edi ]
3847
+ -
3848
+ asm_text : " rep insb byte ptr es:[edi], dx"
3849
+ details :
3850
+ x86 :
3851
+ prefix : [ X86_PREFIX_REP, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
3852
+ opcode : [ 0x6c, 0x00, 0x00, 0x00 ]
3853
+ eflags : [ X86_EFLAGS_TEST_DF ]
3854
+ regs_read : [ dx, eflags, ecx, es, edi ]
3855
+ regs_write : [ edi, ecx ]
3856
+ -
3857
+ asm_text : " insd dword ptr es:[edi], dx"
3858
+ details :
3859
+ x86 :
3860
+ prefix : [ X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
3861
+ opcode : [ 0x6d, 0x00, 0x00, 0x00 ]
3862
+ eflags : [ X86_EFLAGS_TEST_DF ]
3863
+ regs_read : [ dx, edi, eflags, es ]
3864
+ regs_write : [ edi ]
3865
+ -
3866
+ asm_text : " rep insd dword ptr es:[edi], dx"
3867
+ details :
3868
+ x86 :
3869
+ prefix : [ X86_PREFIX_REP, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
3870
+ opcode : [ 0x6d, 0x00, 0x00, 0x00 ]
3871
+ eflags : [ X86_EFLAGS_TEST_DF ]
3872
+ regs_read : [ dx, edi, eflags, ecx, es ]
3873
+ regs_write : [ edi, ecx ]
3795
3874
3796
3875
-
3797
3876
input :
@@ -3833,6 +3912,10 @@ test_cases:
3833
3912
0xf3, 0xa5, # rep movsd dword ptr [rdi], dword ptr [rsi]
3834
3913
0x48, 0xa5, # REX.W movsq qword ptr [rdi], qword ptr [rsi]
3835
3914
0xf3, 0x48, 0xa5, # rep REX.W movsq qword ptr [rdi], qword ptr [rsi]
3915
+ 0x6c, # insb byte ptr [rdi], dx
3916
+ 0xf3, 0x6c, # rep insb byte ptr [rdi], dx
3917
+ 0x6d, # insd dword ptr [rdi], dx
3918
+ 0xf3, 0x6d, # rep insd dword ptr [rdi], dx
3836
3919
]
3837
3920
arch : " x86"
3838
3921
options : [ CS_OPT_DETAIL, CS_MODE_64 ]
@@ -4175,3 +4258,39 @@ test_cases:
4175
4258
eflags : [ X86_EFLAGS_TEST_DF ]
4176
4259
regs_read : [ rdi, rsi, rflags, rcx ]
4177
4260
regs_write : [ rdi, rsi, rcx ]
4261
+ -
4262
+ asm_text : " insb byte ptr [rdi], dx"
4263
+ details :
4264
+ x86 :
4265
+ prefix : [ X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
4266
+ opcode : [ 0x6c, 0x00, 0x00, 0x00 ]
4267
+ eflags : [ X86_EFLAGS_TEST_DF ]
4268
+ regs_read : [ dx, rflags, rdi ]
4269
+ regs_write : [ rdi ]
4270
+ -
4271
+ asm_text : " rep insb byte ptr [rdi], dx"
4272
+ details :
4273
+ x86 :
4274
+ prefix : [ X86_PREFIX_REP, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
4275
+ opcode : [ 0x6c, 0x00, 0x00, 0x00 ]
4276
+ eflags : [ X86_EFLAGS_TEST_DF ]
4277
+ regs_read : [ dx, rflags, rcx, rdi ]
4278
+ regs_write : [ rdi, rcx ]
4279
+ -
4280
+ asm_text : " insd dword ptr [rdi], dx"
4281
+ details :
4282
+ x86 :
4283
+ prefix : [ X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
4284
+ opcode : [ 0x6d, 0x00, 0x00, 0x00 ]
4285
+ eflags : [ X86_EFLAGS_TEST_DF ]
4286
+ regs_read : [ dx, rdi, rflags ]
4287
+ regs_write : [ rdi ]
4288
+ -
4289
+ asm_text : " rep insd dword ptr [rdi], dx"
4290
+ details :
4291
+ x86 :
4292
+ prefix : [ X86_PREFIX_REP, X86_PREFIX_0, X86_PREFIX_0, X86_PREFIX_0 ]
4293
+ opcode : [ 0x6d, 0x00, 0x00, 0x00 ]
4294
+ eflags : [ X86_EFLAGS_TEST_DF ]
4295
+ regs_read : [ dx, rdi, rflags, rcx ]
4296
+ regs_write : [ rdi, rcx ]
0 commit comments