Страница 1 из 2
начинающий ассемблерист или как там...
Добавлено: 10 фев 2007, 09:07
Oleg_Rus
вот решил посмотреть что такое ассемблер.
Препод говорит, что "Сложно-Сложно" и мне стало любопытно как им работать...
для начала такой вопрос: для ассемлера нужен спецальный компилятор и если да то где его мона найти, скачать?
дальше: дайте мне пожалуйста листинг программы сложения 2 чисел (желательно с комментариями, но я человек не придирчивый, могу и так).
Re: начинающий ассемблерист или как там...
Добавлено: 12 фев 2007, 01:27
Ramzey
Много интересного, так же компилятор и линковщик найдешь на
http://www.wasm.ru.
программа сложения 2 чисел, для TASM:
Код: Выделить всё
.model tiny
.code
ORG 100h
BEGIN:
;устанавливаем указатель сегмента данных на cs (ds:=cs)
push cs
pop ds
;сложение чисел a и b
mov al, a
add al, b
;подготавливаем результат для вывода на экран
add al, 30h
;выводим на экран 0Ah функцией биос
mov ah, 0Ah
;обнуляем bx - нулевая видеостраница
xor bh, bh
;количество повторений 1
mov cx, 1
;вызываем обработчик 10h прерывания - функции биос
int 10h
;функция ДОС 4Ch завершение работы программы с кодом 00
mov ax, 4c00h
int 21h
;переменные
a db 5
b db 4
END BEGIN
В результате компиляции получается .com-файл.
Это самый простой вариант, когда результат одноразрядный
Re: начинающий ассемблерист или как там...
Добавлено: 12 фев 2007, 05:18
Oleg_Rus
ага...
Ramzey, а на той ссылочке, которую ты мне кинул, дофига всяких там компилеров, нон какой больше подойдет для начанающего ассемблериста?
спасибо за приведенный мне пример

)
Re: начинающий ассемблерист или как там...
Добавлено: 13 фев 2007, 00:19
Ramzey
Я с TASMа начинал - так в институте было.
Рекомендую использовать DN (или ему подобный файл менеджер) для писания текстов прог и настройть запуск файлов с расширением *.asm.
Re: начинающий ассемблерист или как там...
Добавлено: 15 фев 2007, 01:39
Колядин Максим
В Turbo Pascal 7.0 есть встроенный ассемблер. Чтобы включить в программу код asm нужно
Re: начинающий ассемблерист или как там...
Добавлено: 15 фев 2007, 17:30
somewhere
" писал(а):и настройть запуск файлов с расширением *.asm.
Oleg_Rus, это поможет тебе быстро компилить asm файлы с помощью bat файла, указав имя проги в параметрах (asm.bat myprog.asm - сокр. вариант: asm myprog):
Код: Выделить всё
@echo off
D:\Langs\asm\tasm %1.asm /iD:\Langs\asm\Includes /q/m3 /la
D:\Langs\asm\tlink %1.obj /m /e /3 /yx
del *.obj
Re: начинающий ассемблерист или как там...
Добавлено: 16 фев 2007, 12:39
Oleg_Rus
somewhere,
begin
asm
push cs
pop ds
mov a1, a
add a1, b
add a1, 30h
mov a1, 0Ah
xor bh, bh
mov cx, 1
int 10h
mov ax, 4c00h
int 21h
a db 5
b db 4
end
допустим я набил этот самый код в pascal`е, но не компилится и, так как я в ассемблере ламер, то прошу объяснить почему не пашет, почему никак не хочет работать, и как это исправить
Re: начинающий ассемблерист или как там...
Добавлено: 16 фев 2007, 13:05
somewhere
" писал(а):a db 5
b db 4
" писал(а):mov ax, 4c00h
int 21h
Примерно эти строки генерит сам паскаль после end.
Re: начинающий ассемблерист или как там...
Добавлено: 17 фев 2007, 06:04
Oleg_Rus
somewhere, спасибо, доработал, но теперь выдает ошибку
a bd 5;
говорит Syntax error;
Re: начинающий ассемблерист или как там...
Добавлено: 19 фев 2007, 12:39
Ramzey
Вот как это выглядит на паскале:
Код: Выделить всё
var
a,b : byte;
begin
a:=5;
b:=4;
asm
{;сложение чисел a и b}
mov al, a
add al, b
{;подготавливаем результат для вывода на экран}
add al, 30h
{;выводим на экран 0Ah функцией биос}
mov ah, 0Ah
{;обнуляем bx - нулевая видеостраница}
xor bh, bh
{;количество повторений 1}
mov cx, 1
{;вызываем обработчик 10h прерывания - функции биос}
int 10h
end;
end.