Rev 174 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 174 | Rev 176 | ||
---|---|---|---|
Line 6006... | Line 6006... | ||
6006 | jnz address_ok |
6006 | jnz address_ok |
6007 | test ch,0Fh |
6007 | test ch,0Fh |
6008 | jnz address_ok |
6008 | jnz address_ok |
6009 | calculate_relative_address: |
6009 | calculate_relative_address: |
6010 | call calculate_relative_offset |
6010 | mov edx,[address_high] |
- | 6011 | call calculate_relative_offset |
|
6011 | mov [address_high],edx |
6012 | mov [address_high],edx |
6012 | mov edx,[symbol_identifier] |
6013 | cdq |
- | 6014 | cmp edx,[address_high] |
|
- | 6015 | jne value_out_of_range |
|
- | 6016 | mov edx,[symbol_identifier] |
|
6013 | mov [address_symbol],edx |
6017 | mov [address_symbol],edx |
6014 | mov edx,eax |
6018 | mov edx,eax |
6015 | mov bx,0FF00h |
6019 | mov bx,0FF00h |
6016 | address_ok: |
6020 | address_ok: |
6017 | ret |
6021 | ret |
6018 | 6022 | operand_16bit: |
|
6019 | operand_16bit: |
- | |
6020 | cmp [code_type],16 |
6023 | cmp [code_type],16 |
6021 | je size_prefix_ok |
6024 | je size_prefix_ok |
6022 | mov [operand_prefix],66h |
6025 | mov [operand_prefix],66h |
6023 | ret |
6026 | ret |
6024 | operand_32bit: |
6027 | operand_32bit: |
Line 6144... | Line 6147... | ||
6144 | reg_code_ok: |
6147 | reg_code_ok: |
6145 | call store_segment_prefix_if_necessary |
6148 | call store_segment_prefix_if_necessary |
6146 | or bx,bx |
6149 | or bx,bx |
6147 | jz address_immediate |
6150 | jz address_immediate |
6148 | cmp bx,0F000h |
6151 | cmp bx,0F800h |
6149 | je address_rip_based |
6152 | je address_rip_based |
6150 | cmp bx,0FF00h |
6153 | cmp bx,0F400h |
- | 6154 | je address_eip_based |
|
- | 6155 | cmp bx,0FF00h |
|
6151 | je address_relative |
6156 | je address_relative |
6152 | mov al,bl |
6157 | mov al,bl |
6153 | or al,bh |
6158 | or al,bh |
6154 | and al,11110000b |
6159 | and al,11110000b |
6155 | cmp al,80h |
6160 | cmp al,80h |
Line 6483... | Line 6488... | ||
6483 | shl cl,3 |
6488 | shl cl,3 |
6484 | or al,cl |
6489 | or al,cl |
6485 | stos word [edi] |
6490 | stos word [edi] |
6486 | jmp store_address_32bit_value |
6491 | jmp store_address_32bit_value |
6487 | address_rip_based: |
6492 | address_eip_based: |
- | 6493 | mov al,67h |
|
- | 6494 | stos byte [edi] |
|
- | 6495 | address_rip_based: |
|
6488 | cmp [code_type],64 |
6496 | cmp [code_type],64 |
6489 | jne invalid_address |
6497 | jne invalid_address |
6490 | call store_instruction_code |
6498 | call store_instruction_code |
6491 | jmp store_immediate_address |
6499 | jmp store_immediate_address |
6492 | address_relative: |
6500 | address_relative: |