LINUX.ORG.RU

gas под dos

 , , , ,


1

1

Вот такой незамысловатый код на nasm

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
компилирую на linux машине так:
nasm a.asm -o a.com -f bin
В dosbox отлично запускается, принтует и выходит.

Пытаюсь сделать аналогичное на gas

.code16

.globl _start

_start:
    movw $hello, %dx
    movb $0x09,  %ah
    int  $0x21
    movb $0x4c,  %ah
    int  $0x21

    hello: .ascii "Hello, world!$"
собираю так (под linux)
[actics@x120e dos]$ as -march=i386 -mtune=i8086 --32  gas.asm -o gas.o
[actics@x120e dos]$ ld -m i386linux -Ttext 0x100 -nostdlib --oformat binary gas.o -o gas.com
Запущенное в досе принтует много лишнего, приходится одну строчку заменять так:
movw $0x100 +  hello - _start, %dx
Каким образо можно скомпилировать gas код аналогично коду на nasm?


Ответ на: комментарий от lazyklimm

Мне завтра сдавать выученные наизусть все функции 21 инта доса. и ещё всякие приколюхи. Дак вот я себя чувствую вообще чорним магом.
Причем тут есть экземпляры, коротые утверждают, что это очень важное знание!

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

21 инта

ооо, где мои 17 лет :D

и ещё всякие приколюхи.

типа переключения нестандартного видеорежима с помощью ломика и чьей-то матери

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

в том числе. а ещё кучу разных интов и подфункций. Шел 2013 год, лол)

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

>Мне завтра сдавать выученные наизусть все функции 21 инта доса. и ещё всякие приколюхи. Дак вот я себя чувствую вообще чорним магом.

Бросай такую шарагу.

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

АСВТ - аппаратные средства вычислительной техники.
Так-то штука нужная, но уж больно устарела. В плане практики - точно.

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