LINUX.ORG.RU

Вот такое сделал:

.code16

.globl _start

_start:
mov $9, %ah
test:
mov $0x100 + msg - ., %dx

int $0x21
ret

msg: 
.align 1
.ascii "hello, world!\12$"
Правда оно не совсем правильно работает. Процесс «компиляции» :
as -march=i386 --32 gas.S -o gas.o
ld -m i386linux -Ttext 0x100 -nostdlib --oformat binary gas.o -o gas.com
В bochs вот так http://i.imgur.com/6fD69VX.png

Подозреваю, там какая-то фишка с кратностью адреса, под дос никогда не программировал до этого

SZT ★★★★★
()
Ответ на: комментарий от SZT

Алигн 1 после msg убери и заработает. Расскажи, пожалуйста, как поставил. Я в арче из аура поставил себе пакетик, там был as и ld, У меня началась какая-то магия. Один раз все вывел оправильно (на не в той кодировке), остальные фейлится.

actics
() автор топика
Ответ на: комментарий от SZT

Аааа, я не могу выразить моего счастья после 6 часовой еб^Wлюбви со всем этим. У меня заработало. Вывело много чего лишнего, но собралось стандартными средствами, прям в арче. Спасибо, твои заклинания верные :)
Завтра буду пыться собрать gdb. :) Буду рад если окажешь поддержку.

actics
() автор топика
Ответ на: комментарий от actics

Вот собственно. Надо из метки msg отнимать _start

.code16

.globl _start

_start:
mov $9, %ah

mov $0x100 + msg - _start , %dx
int $0x21
ret

msg: 
.ascii "hello, world!$"
Ничего особоенного я не ставил, это обычные стандартные binutils, ничем не примечательные

SZT ★★★★★
()
Ответ на: комментарий от SZT

Почему ты не поставил .org 0x100 ?
Я вот тоже теперь задумался об этом. Это какой-то костыль. Надо найти как это избежать.

actics
() автор топика
Ответ на: комментарий от SZT
use16 
bits 16
org 0x100

segment .data 
    hello: db 'hello, world','$' 

segment .text 
    mov dx,hello 
    mov ax,0900h 
    int 21h 
    mov ax,4c00h 
    int 21h

Вот как у меня получилось на насме. nasm a.asm -o a.com -f bin Работает идеально. Вот очень хочется так же писать на gas

actics
() автор топика
Ответ на: комментарий от actics

Почему ты не поставил .org 0x100

Нипочему, я не умею программировать под дос и не до конца понимаю логику работы этого gas

Зачем тебе кстати писать на gas под дос?

SZT ★★★★★
()
Ответ на: комментарий от SZT

Я тоже ничего не знаю про дос :)
В универе учусь. В прошлом семестре была вводная ассемблера, дак я вовсю извращался на линуксе. Писал на nasm. А сейчас началось что-то типа углубленного курса, там нужно напрямую с железками работать, и причем многие задания специфичные именно для доса. Гас тут при том, что просто я хочу научиться свободно на нем писать, чтоб без труда читать листинги из гдб например. Хочется странного, в общем

actics
() автор топика
Ответ на: комментарий от SZT

Пришло время новый тред создавать.

actics
() автор топика
Ответ на: комментарий от actics

http://www.dim13.org/cgi-bin/cvsweb/src/boot/ ← бутлоадер, который я когда-то написал. (GAS Syntax, naked BIOS, не DOS) Деталей уже не помню — это было так давно и неправда, что я и сам уже не разберусь, т.ч. не спрашивай. ☺ Но поект мелкий, может как-то тебе пригодится, как наглядное пособие.

beastie ★★★★★
()
Ответ на: комментарий от beastie

Спасибо!
Загляни ещё, пожалуйста, в соседний тред.

actics
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.