Форум программистов, компьютерный форум, киберфорум
Assembler: Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/19: Рейтинг темы: голосов - 19, средняя оценка - 4.53
1 / 1 / 0
Регистрация: 15.12.2009
Сообщений: 18

Прога для NASM (Linux)

22.06.2010, 08:59. Показов 3544. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят в общем такая проблема... До конца июня нужно сдать лабу по асму (первый курс).. Времени сейчас с ним разбираться уже нет((( Код мне написал старший друг, но досада.. Писал он под TASM, а у меня Linux и хотел я писать в NASM((( Переходить под винду не кайф((( Есть ли вариант этот код адаптировать под NASM? Или кто сможет помочь с написанием под NASM...
Код:

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
data segment
b db 1,2,3,4,5,6,7,8,9,10
sum dw ?
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
lea bx,b
xor cx,cx
mov cl,10
xor ax,ax
cik:
mov al,[bx]
test al,1b
jnz nech
add sum,ax
nech:
inc bx
loop cik
mov ax,4c00h
int 21h
code ends
end start
ЗАДАНИЕ: Определить сумму эл. массива В(100) значения которых четные

Заранее всем спасибо))

Добавлено через 12 часов 44 минуты
Неужели никто никогда не писал под NASM?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.06.2010, 08:59
Ответы с готовыми решениями:

Команда NOT, nasm, linux x86_64
Не понятен результат исполнения команды not в следующем коде global _start section .text _start: ; NOT Operation ...

[NASM] [Linux] Переименование Mp3 тегов
Кто может помочь написать данную программу?

Исправление ошибки при решении примера (linux nasm)
Привет, Всем) Не могли бы, Вы исправить ошибку в коде nasm (linux) Пример : ((a1+a2)*a3/a4+a5) a1=-7, a2=3, a3=2, a4=4, a5=2 mov...

11
64 / 63 / 3
Регистрация: 16.11.2009
Сообщений: 156
22.06.2010, 12:08
Oбязательно NASM? Фасм тоже может создать ELF'ов.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
format ELF executable
entry start
 
segment readable executable
 
start: 
lea bx,[b]
xor cx,cx
mov cl,10
xor ax,ax
cik:
mov al,[bx]
test al,1b
jnz nech
add sum,ax
nech:
inc bx
loop cik
 
mov eax,1
xor ebx,ebx
int 0x80
 
segment readable writeable
b db 1,2,3,4,5,6,7,8,9,10
sum dw ?
Не проверял.
1
1 / 1 / 0
Регистрация: 15.12.2009
Сообщений: 18
22.06.2010, 15:32  [ТС]
Спасибо большое)
Щас буду проверять))

Добавлено через 51 минуту
ошибочки все же есть(((

/home/bvs-studio/prog01.asm [15]:
add sum,ax
error: invalid operand.
0
64 / 63 / 3
Регистрация: 16.11.2009
Сообщений: 156
22.06.2010, 16:17
add [sum],ax
1
1 / 1 / 0
Регистрация: 15.12.2009
Сообщений: 18
22.06.2010, 18:39  [ТС]
bvs-studio@bvs-desktop:~$ ld -o prog01 /home/bvs-studio/prog01.o
ld: warning: cannot find entry symbol _start; not setting start address




bvs-studio@bvs-desktop:~$ /home/bvs-studio/prog01
bash: /home/bvs-studio/prog01: не могу запустить бинарный файл

Еще можно немножко помочь?)
0
64 / 63 / 3
Регистрация: 16.11.2009
Сообщений: 156
22.06.2010, 19:51
Если надо компилировать в obj текст немного меняется.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
format ELF
 
section '.text' executable
 
 public _start
 _start:
lea bx,[b]
xor cx,cx
mov cl,10
xor ax,ax
cik:
mov al,[bx]
test al,1b
jnz nech
add [sum],ax
nech:
inc bx
loop cik
 
    mov eax,1
    xor ebx,ebx
    int 0x80
 
section '.data' writeable
b db 1,2,3,4,5,6,7,8,9,10
sum dw ?
Это компилится командами:
fasm prog01.asm prog01.o
ld prog01.o -o prog01

Но по сути первый код лучше. Он комплился одной командой.
fasm prog01.asm prog01
1
1 / 1 / 0
Регистрация: 15.12.2009
Сообщений: 18
22.06.2010, 20:10  [ТС]
bvs-studio@bvs-desktop:~$ /home/bvs-studio/prog01
Segmentation fault

Выдает в обоих случаях запуска исполняемого файла(((
Компилится в обоих норм)


bvs-studio@bvs-desktop:~$ /home/bvs-studio/desktop/fasm/fasm /home/bvs-studio/prog01.asm prog01
flat assembler version 1.69.14 (16384 kilobytes memory)
3 passes, 168 bytes.
0
64 / 63 / 3
Регистрация: 16.11.2009
Сообщений: 156
22.06.2010, 20:50
Нуу... С такой ошибкой я не справлюсь без линукса. А его у меня нет.
Попробуй
chmod +x filename
Может поможет. Нашел на сайте фасма.

И попробуй скомпилировать примеры, которые идут с фасмом.
1
1 / 1 / 0
Регистрация: 15.12.2009
Сообщений: 18
22.06.2010, 21:01  [ТС]
ОК) Буду пытаться)))
Спасибо за помощь;-)
Может еще обращусь)
0
1 / 1 / 0
Регистрация: 15.12.2009
Сообщений: 18
24.06.2010, 01:47  [ТС]
ну в общем вот такой пример отлично компилится в одну строчку


Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
format ELF executable 3
entry start
 
segment readable executable
 
start:
 
    mov eax,4
    mov ebx,1
    mov ecx,msg
    mov edx,msg_size
    int 0x80
 
    mov eax,1
    xor ebx,ebx
    int 0x80
 
segment readable writeable
 
msg db 'Hello world!',0xA
msg_size = $-msg


root@bvs-desktop:/home/bvs-studio# /home/bvs-studio/asm/test
Hello world!
0
1 / 1 / 0
Регистрация: 15.12.2009
Сообщений: 18
26.06.2010, 10:44  [ТС]
Вобщем намучался я с ФАСМом и НАСМом и решил (т.к. времени уже нет) попробовать ТАСМом....
Запустил я его под линем в досбоксе.... Оттранслировал, начал компилить и вот что пишет
Warning: No stackd

При этом ехе файл все же компилится, но при его запуске ничего не происходит(((
Вот код:

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
data segment
b db 1,2,3,4,5,6,7,8,9,10
sum dw ?
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
lea bx,b
xor cx,cx
mov cl,10
xor ax,ax
cik:
mov al,[bx]
test al,1b
jnz nech
add sum,ax
nech:
inc bx
loop cik
mov ax,4c00h
int 21h
code ends
end start
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
26.06.2010, 19:00
а что ты хотел увидеть, ведь на экран ниче не выводится)) в результате в переменной sum будет сумма четных - результат смотри в отладчике
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.06.2010, 19:00
Помогаю со студенческими работами здесь

Как вывести значение в консоль linux (ubuntu) на nasm
как быть? тут на сайте есть куча литературы но она вся для винды( MASM, TASM ) а для NASM нету( вот например у меня есть код section...

NASM - передать имя файла для инклюда как макрос из командной строки
Привет! Достался мне в наследство код, написанный на nasm'е. Для компиляции используется такая система: где то в коде есть такая строка...

Скажите почему прога зависает. Не пойму. Прога имитирует входной потол: пользователь вводит предложение которое сохраняется в буфер.
STAK SEGMENT STACK db 256 dup(?) STAK ENDS DATA SEGMENT buf db 256d dup(?) ; nash bufer len equ $-buf ; dlina nashego...

[NASM] Ошибка "nasm error more than one input file specified type"
Начал изучать ассемблер сделал все как в методичке и зашел в тупик значит скачал я от сюда инстал файл NASM...

IDE для работы с NASM
Помогите пожалуйста найти нормальную среду для написания и компилирования программ, написанных на Netwide Assembler (NASM).


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru