Автор Тема: tasm за linux  (Прочетена 1410 пъти)

iskren

  • Напреднали
  • *****
  • Публикации: 185
  • Distribution: Fedora Core 8
  • Window Manager: KDE3
    • Профил
    • WWW
tasm за linux
« -: Jan 27, 2009, 14:54 »
Здравейте,

Искам да попитам дали има асемблер, подобен на tasm под линукс. Значи по принцип разгледах репото и асемблери намерих, но искам някой, който да може да компилира следния код:

Код:
.model small
.stack
.data
message   db "Hello world, I'm learning Assembly !!!", "$"

.code

main   proc
   mov   ax,seg message
   mov   ds,ax

   mov   ah,09
   lea   dx,message
   int   21h

   mov   ax,4c00h
   int   21h
main   endp
end main
Не разбирам много от асемблери, но трябва да си напиша проект за университета, и понеже там има tasm трябва да се компилира на него. Пробвах със as, nasm, yasm но изглежда те използват друг предпроцесор, който не харесва директивите в този код (за сегмента за стек, данни).
Активен

iskren

  • Напреднали
  • *****
  • Публикации: 185
  • Distribution: Fedora Core 8
  • Window Manager: KDE3
    • Профил
    • WWW
Re: tasm за linux
« Отговор #1 -: Jan 27, 2009, 16:56 »
Пробвах да използвам wine за да пусна tasm - обаче ми дава
Код:
wine: ... because vm86 mode is not supported on this platform.
това разбира се след като оправих проблема с достъпването до първите адреси

После отворих някакъв туториал от http://asm.sourceforge.net/intro/hello.html обаче при линкване дава следния проблем:
Код:
$ nasm -f elf -o t3.o t3.asm
$ ld -e _start -o t3 t3.o
ld: i386 architecture of input file `t3.o' is incompatible with i386:x86-64 output

май пропуснах да спомена че съм със 64битова операционна система...

Някой може ли да ми каже някакъв начин да пиша на асемблер, след което да пусна написаното :) Проекта ще е нещо простично - няма да използвам нищо екзотично.
Активен

task_struct

  • Напреднали
  • *****
  • Публикации: 576
  • Distribution: Kubuntu 14.04
  • Window Manager: KDE 4.13
    • Профил
Re: tasm за linux
« Отговор #2 -: Jan 27, 2009, 17:25 »
Здравей, виж nasm дали няма опция за архитектура, за която да компилира. Иначе незнам колкото ти е мощен, компютъра, но ако нищо друго не стане, може да си сложиш уин на виртуална машина
Активен

"Minds are like parachutes. They only function when they are open." - James Dewar

irc.freenode.net  / #linux-bg

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: tasm за linux
« Отговор #3 -: Jan 27, 2009, 17:38 »
Има nasm, но поради ред причини това няма да се компилира. Синтаксисът е малко по-различен, секциите са малко по-различни (няма .code има .text). Обаче най-вече това нищо няма да направи - това е код, който работи под ДОС в 16-битов real mode.

Linux въобще не прихваща INT 21h и не ти осигурява това API.

Така например:

mov   ax,seg message
mov   ds,ax

mov   ah,09
lea   dx,message
int   21h

Няма да направи нищо - със сигурност няма да изпише на екрана този стринг.

Активен

"Knowledge is power" - France is Bacon

iskren

  • Напреднали
  • *****
  • Публикации: 185
  • Distribution: Fedora Core 8
  • Window Manager: KDE3
    • Профил
    • WWW
Re: tasm за linux
« Отговор #4 -: Jan 27, 2009, 17:53 »
@task_struct
1. Има опции за bin, elf, aout формат като нито една не върши работа, иначе за архитектура няма опции
2. Да и аз си го мислих това, но малко ме мързи да инсталирам цял windows. Освен това имам опасения че процесора ми не поддържа виртуализация.

@gat3way
dosbox ще свърши ли работа? Иначе ще опаковам освновните OS примитиви във функции за да може лесно да се портне.

::edit:: всъщност dosbox свърши отлична работа. Инсталирах си tasm и после успях да подкарам програмата от първия туториал. Мисля че за целите които си поставям ще ми свърши отлична работа. Мерси на всички за помощта!
« Последна редакция: Jan 27, 2009, 18:15 от iskren »
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Бисквитките на linux-bg.org
Предложения за подобрения на сайта
ogi 0 4837 Последна публикация Apr 29, 2002, 21:40
от ogi
Лаком Linux
Хардуерни и софтуерни проблеми
kennedy 2 5410 Последна публикация Aug 13, 2002, 01:15
от zarrro
Mandrake Linux 10 and Linux
Настройка на програми
aaaSASlover 3 9240 Последна публикация Dec 08, 2012, 20:46
от UBIGI
Remote връзка Linux<--> Linux
Настройка на програми
stoyanovs 5 7777 Последна публикация Jan 24, 2006, 16:49
от gostenin
Experienced linux enginnced linux engineers
Търсене
bulwork 0 7868 Последна публикация May 10, 2008, 14:24
от bulwork