Да, это слишком много кода.
Вы хотите использовать этот трюк для реализации целочисленного деления со знаком с точки зрения сдвигов, при этом сохраняя семантику округления n / 2
(в сторону 0), в отличие от сдвигов, которые округляют в сторону -infinity.
Вы, вероятно, хотите использовать условное выполнение.
Ваш код может быть таким коротким, как , это :
shiftS32:
cmp r1, #0
asrlt r2, r0, #31
addlt r3, r1, #32
lslge r0, r0, r1
rsblt r1, r1, #0
addlt r0, r0, r2, lsr r3
asrlt r0, r0, r1
bx lr
И немного теста здесь .
http://www.connectionstrings.com/oracle
Это отличный ресурс
SERVER = (ОПИСАНИЕ = (АДРЕС = (PROTOCOL = TCP) (HOST = MyHost) (ПОРТ = MyPort))
(CONNECT_DATA = (SERVICE_NAME = MyOracleSID))); uid = myUsername; pwd = myPassword;
- это то, что вы хотите, я верю ...
Начиная с клиентов 10g, вы можете использовать функцию EZCONNECT , которая не требует редактирования файла TNSNAMES.ORA: имя пользователя / пароль @ имя сервера : порт / экземпляр
. Например:
Data Source=localhost:1521/XE;Persist Security Info=True;User ID=scott;Password=tiger;Unicode=True