Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2014, 02:20   #1
Tmp21
Новичок
Джуниор
 
Регистрация: 21.06.2014
Сообщений: 1
По умолчанию NASM

1.Дано натуральное число N. Переставить местами первую и последнюю цифры этого числа.

2. | a/b+a*b-1, если a<b |
x= | (b-a)*(b3)+a+4)+1, если a=b |
| (a-b2) 2, если a>b |
Tmp21 вне форума Ответить с цитированием
Старый 21.06.2014, 10:48   #2
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,603
По умолчанию

Если бы у Вас были свои наработки, я бы Вам помог.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 21.06.2014, 18:50   #3
WhiskasTM
Подтвердите свой е-майл
 
Регистрация: 11.04.2012
Сообщений: 85
По умолчанию

Просто попробовал, не NASM, тупо код. N в eax, отрицательные числа в пролете(флаг банально нужен). 2 вообще не понял.
Код:
  test      eax,eax
  jnz       @@notzero
  ret

@@notzero:
  cmp       eax,9
  jg        @@good
  //cmp       eax,-9
  //jl        @@negative
  ret

@@good:
  push      ebx
  mov       ebx,eax
  xor       edx,edx
  mov       ecx,10
  div       ecx
  cmp       eax,9    //<100?
  jg        @@large
  cmp       al,dl
  jne       @@comeon
  mov       eax,ebx
  //restore stack
  pop       ebx
  ret

@@comeon:
  mov       ebx,eax
  mov       eax,edx
  mul       ecx
  add       eax,ebx
  //restore stack
  pop       ebx
  ret

@@large:
  push      esi
  mov       esi,edx
  test      ebx,$FFFF0000
  jz        @@int16

@@int32:
  cmp       ebx,999999999
  jg        @@Z9
  cmp       ebx,99999999
  jg        @@Z8
  cmp       ebx,9999999
  jg        @@Z7
  cmp       ebx,999999
  jg        @@Z6
  cmp       ebx,99999
  jg        @@Z5
  mov       ecx,10000
  jmp       @@divide

@@Z9:
  mov       ecx,1000000000
  jmp       @@divide

@@Z8:
  mov       ecx,100000000
  jmp       @@divide

@@Z7:
  mov       ecx,10000000
  jmp       @@divide

@@Z6:
  mov       ecx,1000000
  jmp       @@divide

@@Z5:
  mov       ecx,100000
  jmp       @@divide

@@int16:
  cmp       ebx,9999
  jg        @@Z4
  cmp       ebx,999
  jg        @@Z3
  cmp       ebx,99
  jg        @@Z2
  mov       ebx,10    //Z1
  jmp       @@divide

@@Z4:
  mov       ecx,10000
  jmp       @@divide

@@Z3:
  mov       ecx,1000
  jmp       @@divide

@@Z2:
  mov       ecx,100

@@divide:
  xchg      esi,ebx
  xor       edx,edx
  mov       eax,esi
  div       ecx
  cmp       bl,al
  jne       @@change
  mov       eax,esi
  //restore stack
  pop       ebx
  pop       esi
  ret

@@change:
  mov       bh,al
  mul       ecx
  movzx     edx,bl
  sub       esi,edx
  sub       esi,eax
  movzx     eax,bl
  mul       ecx
  movzx     edx,bh
  add       eax,edx
  add       eax,esi
  //restore stack
  pop       ebx
  pop       esi
  ret
хотя мжно попробовать, главное трассировщик с avx где-то достать, гуи нет-то.
WhiskasTM вне форума Ответить с цитированием
Старый 21.06.2014, 22:30   #4
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,603
По умолчанию

У NASM синтаксис похож на FASM.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запуск nasm TotKtoNado Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 12.12.2011 15:14
nasm TotKtoNado Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 06.11.2011 20:07
Ассемблер(NASM). Как оформить цикл "while" в NASM-е? Зелёный Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 10.06.2011 16:04
самоучитель по nasm 777user777 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 05.06.2011 23:39