Subversion Repositories Kolibri OS

Rev

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