Rev 2665 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2665 | Rev 3010 | ||
---|---|---|---|
Line 3310... | Line 3310... | ||
3310 | cmp [code_type],64 |
3310 | cmp [code_type],64 |
3311 | je invalid_address_size |
3311 | je invalid_address_size |
3312 | call address_16bit_prefix |
3312 | call address_16bit_prefix |
3313 | movs_store: |
3313 | movs_store: |
3314 | cmp [segment_register],4 |
3314 | xor ebx,ebx |
3315 | je movs_segment_ok |
- | |
3316 | call store_segment_prefix |
3315 | call store_segment_prefix_if_necessary |
3317 | movs_segment_ok: |
3316 | mov al,0A4h |
3318 | mov al,0A4h |
- | |
3319 | movs_check_size: |
3317 | movs_check_size: |
3320 | mov bl,[operand_size] |
3318 | mov bl,[operand_size] |
3321 | cmp bl,1 |
3319 | cmp bl,1 |
3322 | je simple_instruction |
3320 | je simple_instruction |
3323 | inc al |
3321 | inc al |
Line 3357... | Line 3355... | ||
3357 | cmp [code_type],64 |
3355 | cmp [code_type],64 |
3358 | je invalid_address_size |
3356 | je invalid_address_size |
3359 | call address_16bit_prefix |
3357 | call address_16bit_prefix |
3360 | lods_store: |
3358 | lods_store: |
3361 | cmp [segment_register],4 |
3359 | xor ebx,ebx |
3362 | je lods_segment_ok |
- | |
3363 | call store_segment_prefix |
3360 | call store_segment_prefix_if_necessary |
3364 | lods_segment_ok: |
3361 | mov al,0ACh |
3365 | mov al,0ACh |
- | |
3366 | jmp movs_check_size |
3362 | jmp movs_check_size |
3367 | stos_instruction: |
3363 | stos_instruction: |
3368 | mov [base_code],al |
3364 | mov [base_code],al |
3369 | lods byte [esi] |
3365 | lods byte [esi] |
3370 | call get_size_operator |
3366 | call get_size_operator |
Line 3450... | Line 3446... | ||
3450 | cmp [code_type],64 |
3446 | cmp [code_type],64 |
3451 | je invalid_address_size |
3447 | je invalid_address_size |
3452 | call address_16bit_prefix |
3448 | call address_16bit_prefix |
3453 | cmps_store: |
3449 | cmps_store: |
3454 | cmp [segment_register],4 |
3450 | xor ebx,ebx |
3455 | je cmps_segment_ok |
- | |
3456 | call store_segment_prefix |
3451 | call store_segment_prefix_if_necessary |
3457 | cmps_segment_ok: |
3452 | mov al,0A6h |
3458 | mov al,0A6h |
- | |
3459 | jmp movs_check_size |
3453 | jmp movs_check_size |
3460 | ins_instruction: |
3454 | ins_instruction: |
3461 | lods byte [esi] |
3455 | lods byte [esi] |
3462 | call get_size_operator |
3456 | call get_size_operator |
3463 | cmp al,'[' |
3457 | cmp al,'[' |
Line 3535... | Line 3529... | ||
3535 | cmp [code_type],64 |
3529 | cmp [code_type],64 |
3536 | je invalid_address_size |
3530 | je invalid_address_size |
3537 | call address_16bit_prefix |
3531 | call address_16bit_prefix |
3538 | outs_store: |
3532 | outs_store: |
3539 | cmp [segment_register],4 |
3533 | xor ebx,ebx |
3540 | je outs_segment_ok |
- | |
3541 | call store_segment_prefix |
3534 | call store_segment_prefix_if_necessary |
3542 | outs_segment_ok: |
3535 | mov al,6Eh |
3543 | mov al,6Eh |
- | |
3544 | jmp ins_check_size |
3536 | jmp ins_check_size |
3545 | xlat_instruction: |
3537 | xlat_instruction: |
3546 | lods byte [esi] |
3538 | lods byte [esi] |
3547 | call get_size_operator |
3539 | call get_size_operator |
3548 | cmp al,'[' |
3540 | cmp al,'[' |
Line 6878... | Line 6870... | ||
6878 | cmp [code_type],64 |
6870 | cmp [code_type],64 |
6879 | je address_immediate_sib |
6871 | je address_immediate_sib |
6880 | test ch,44h |
6872 | test ch,44h |
6881 | jnz address_immediate_32bit |
6873 | jnz address_immediate_32bit |
6882 | test ch,22h |
6874 | test ch,88h |
- | 6875 | jnz address_immediate_32bit |
|
- | 6876 | test ch,22h |
|
6883 | jnz address_immediate_16bit |
6877 | jnz address_immediate_16bit |
6884 | or ch,ch |
6878 | or ch,ch |
6885 | jnz invalid_address_size |
6879 | jnz invalid_address_size |
6886 | cmp [code_type],16 |
6880 | cmp [code_type],16 |
6887 | je addressing_16bit |
6881 | je addressing_16bit |