Главная – Учебные курсы - Контакт autocad1012@yahoo.com

 

Учебные курсы

 

НИЯУ (МИФИ)

 

   Компьютерный практикум. Основы программирования с помощью системных функций MS-DOS. Группы Т7-11, Т01-11М.

 

Дополнительные вопросы

 

Как программировать на ассемблере для Линукс?

 

Ссылка

(Внимание! Ссылка на сайт собственно ассемблера в статье, которая доступна по нижеследующей ссылке, вызывает сомнение.

Описание ассемблера NASM на русском языке доступно по ссылке http://www.opennet.ru/docs/RUS/nasm/

Домашняя страница проекта NASM доступна по ссылке http://www.nasm.us/)

Ассемблер для Linux для начинающих: первая программа

Автор: lonesome TSH/Digital Daemons
Дата: .01.2003
Раздел: Низкоуровневое программирование в Linux

 

Полный текст статьи приведен в документе, доступном по указанной ссылке. Для нас существенно сходство и различие в программах, которые делают одно и то же. Выводят на экран символьную строку. Параллельные тексты программ, одну из которых мы писали и отладили на занятии в пятницу 4.03.2011, а другую можно написать, откомпилировать и запустить на Линуксе, у кого она есть. Обратите внимание на несовпадение номеров функций и прерываний для выполнения одних и тех же задач.

 

txt        segment           'code'

            assume cs:txt,ds:data,es:data,ss:stack

myproc            proc

            mov ax,data

            mov ds,ax

            mov ah,40h

            mov bx,1

            mov cx,meslen

            mov dx,offset mes

            int 21h

            mov ah,4ch

            int 21h

myproc            endp

txt        ends

data     segment

mes db 'Privet'

meslen=$-mes

data     ends

stack    segment           stack

                            db 256 dup (0)

stack    ends

            end      myproc

global _start
 
 
_start:
 
mov eax, 4
mov ebx, 1
mov ecx, msg
mov edx, msglen
int 0x80
 
mov eax, 1
mov ebx, 0
int 0x80
 
section .data
 
msg: db "Linux rulez 4ever",0x0A,0
msglen equ $-msg

 

MS-DOS TASM

LINUX NASM