sasm ide для ассемблера



Автор PIK4ER задал вопрос в разделе Другие языки и технологии

Нужна программа на Ассемблере [Assembler, SOS =D] и получил лучший ответ

Ответ от ...[гуру]
1ая. SASM IDE (NASM + макросы для вывода), на базе Linux, но с миним. переделками заработает в винде
--
%include "io.inc"
section .data
arr dd 1,2,7,3,2,1,8 ; массив чисел
arrEnd:
section .text
global CMAIN
CMAIN:
mov ecx, (arrEnd - arr) / 4 ; cx = кол-ву элементов массива (4 - размер dd)
cmp ecx, 3 ; их меньше 3?
jb @@exit ; сразу на выход
cld ; Флаг для lodsd, двигаемся "вперед"
mov esi, arr ; esi указывает на начало массива
jmp @@firstRun ; прыгаем на метку "первый заход"
@@nextNumber: ; цикл по числам
mov ebx, eax ; запоминаем в ebx предыдущее число
lodsd ; загружаем в eax очередное число
cmp eax, ebx ; сравниваем с предыдущим
jb @@skipZero ; меньше - пропускаем обнуление счетчика
@@firstRun:
xor edx, edx ; обнуляем счетчик чисел
@@skipZero:
inc edx ; увеличиваем счетчик чисел
cmp edx, 3 ; дошел до 3?
je @@foundSeq ; если да - выходим из цикла и запускаем вывод
loop @@nextNumber ; крутим цикл
jmp @@exit ; если не нашли такую последов. - на выход
@@foundSeq:
mov ecx, 3 ; иначе ecx = 3 = колву чисел
sub esi, 3*4 ; сдвигаемся на 3 числа левее (4 = размер dd)
mov ebx, esi ; ebx = смещению
sub ebx, arr ; вычитаем из ebx смещение начала массива
shr ebx, 2 ; получаем из результата индекс в массиве (деля на 4)
@@nextSeqNumber: ; цикл для вывода этих трех чисел
lodsd ; загружаем в eax число
call printDigit ; вызываем процедуру вывода числа
mov eax, ebx ; eax = индексу
call printDigit ; вызываем процедуру вывода числа
inc ebx ; увеличиваем индекс
loop @@nextSeqNumber ; крутим цикл
@@exit:
xor eax, eax ; обнуляем
ret ; выходим из программы
printDigit: ; вспомогательная процедура вывода числа на экран
PRINT_DEC 4, eax ; выводим само число
NEWLINE ; выводим перевод строки
ret ; конец процедуры
---
Вывод - число на след. строке индекс (начинается с 0)
sasm ide для ассемблера

Ответ от Ѐыжая Морда[гуру]
вы меня прямо пугаете своим подходом к асму.
Никто не указывает целевую систему.
при чём тут MPLAB IDE? Прога нужна под конкретную микросхему?

Ответ от Алекс Куха[гуру]
"С обнулением не вопрос", а с остальным какие сложности? Уж извини, быстрее всё же пару часов потратить, дабы восстановить и решить самому для своего другана

Ответ от Илья[гуру]
мплаб тут вообще при чем?

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Нужна программа на Ассемблере [Assembler, SOS =D]
Shop-Script на Википедии
Посмотрите статью на википедии про Shop-Script
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*