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 2032... | Line 2032... | ||
2032 | mov ah,[address_size] |
2032 | mov ah,[address_size] |
2033 | and ah,0Fh |
2033 | and ah,0Fh |
2034 | jz address_registers_sizes_ok |
2034 | jz address_registers_sizes_ok |
2035 | cmp al,ah |
2035 | cmp al,ah |
2036 | jne invalid_address |
2036 | jne address_sizes_do_not_match |
2037 | address_registers_sizes_ok: |
2037 | address_registers_sizes_ok: |
2038 | cmp al,4 |
2038 | cmp al,4 |
2039 | je sib_allowed |
2039 | je sib_allowed |
2040 | cmp al,8 |
2040 | cmp al,8 |
2041 | je sib_allowed |
2041 | je sib_allowed |
2042 | or cl,cl |
2042 | cmp al,0Fh |
- | 2043 | je check_ip_relative_address |
|
- | 2044 | or cl,cl |
|
2043 | jz check_word_value |
2045 | jz check_word_value |
2044 | cmp cl,1 |
2046 | cmp cl,1 |
2045 | je check_word_value |
2047 | je check_word_value |
2046 | jmp invalid_address |
2048 | jmp invalid_address |
2047 | get_address_register: |
2049 | address_sizes_do_not_match: |
- | 2050 | cmp al,0Fh |
|
- | 2051 | jne invalid_address |
|
- | 2052 | mov al,bh |
|
- | 2053 | and al,0Fh |
|
- | 2054 | cmp al,ah |
|
- | 2055 | jne invalid_address |
|
- | 2056 | check_ip_relative_address: |
|
- | 2057 | cmp bh,0F4h |
|
- | 2058 | je check_dword_value |
|
- | 2059 | cmp bh,0F8h |
|
- | 2060 | jne invalid_address |
|
- | 2061 | mov eax,[edi] |
|
- | 2062 | cdq |
|
- | 2063 | cmp edx,[edi+4] |
|
- | 2064 | jne range_exceeded |
|
- | 2065 | ret |
|
- | 2066 | get_address_register: |
|
2048 | or al,al |
2067 | or al,al |
2049 | jz address_register_ok |
2068 | jz address_register_ok |
2050 | cmp dl,1 |
2069 | cmp dl,1 |
2051 | jne scaled_register |
2070 | jne scaled_register |
2052 | or bh,bh |
2071 | or bh,bh |