897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
|
# File 'lib/wilson.rb', line 897
def push_mod_rm_on spareRegister, stream
if id.nil? then
stream << (0b00000101 + (spareRegister.id << 3))
return stream.push_D(offset)
end
modrm = case offset
when 0 then
0b00000000
when 1..255 then
0b01000000
else
0b10000000
end
if index.nil? then
modrm += (spareRegister.id << 3)
else
stream << (0b00000100 + (spareRegister.id << 3))
modrm += (index.id << 3)
end
stream << modrm + id
return self if offset == 0
return stream.push_B(offset) if offset < 256
stream.push_D offset
end
|