Помощь - Поиск - Пользователи - Календарь
Полная версия: 2 переменные
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Assembler
Client
Привет!
У нас начался ассемблер, но чет пока в теории ничего не понятно(
Может кто написать код для сложения 2-х вводимых чисел?
И где этот код можно написать? Какой асм нужен?
volvo
Цитата
И где этот код можно написать? Какой асм нужен?
Ну, вот с этого и надо начинать... Скажи, какой тебе asm нужен, а потом посмотрим, как сделать то, что ты хочешь smile.gif

На MASM-е, например, задача решается так:
.486
.model flat, stdcall
option casemap:none


include D:\masm32\include\windows.inc
include D:\masm32\macros\macros.asm

include D:\masm32\include\masm32.inc
include D:\masm32\include\kernel32.inc

includelib D:\masm32\lib\masm32.lib
includelib D:\masm32\lib\kernel32.lib

.data
first dd ?
second dd ?
.code
start:
mov first, sval(input("Первое число: "))
mov second, sval(input("Второе число: "))
print chr$("Результат = ")

mov eax, first
add eax, second
print str$ (eax)
exit
end start

Набираешь в любом текстовом редакторе, потом компилируешь:
ml.exe /c /coff sum.asm

потом линкуешь:
link.exe /SUBSYSTEM:CONSOLE /LIBPATH:D:\masm32\lib sum.obj

и запускаешь файл sum.exe на выполнение... Естественно, masm32 должен быть установлен.
Client
Я скачал какой-то эмулятор, скрин в файле.
А где написать ml.exe /c /coff sum.asm ?
Щас качаю масм32 7.0 версию
Код
include D:\masm32\include\windows.inc
Это загрузка файлов и модулей, необходимых для работы?

Добавлено через 12 мин.
Скачал масм, вот что получилось. Сохранил в ехе виде, запустил, но ничего не видно( Что не так?
volvo
Цитата
Скачал масм, вот что получилось.
Это не MASM, это у тебя какая-то IDE... masm - это только компилятор. Вот так вот это выглядит у меня:
Client
А где скачать нужный масм? В гугле "скачать masm32" вроде одни эмуляторы wacko.gif
volvo
Вот тут я про это написал: Кнопочный калькулятор (включая и то, что надо сделать перед установкой)
Client
Скачал, установил в С: (C:masm32\). Создал папку mydocs, в которую сохранил файл my1.asm с кодом
Написал по примеру в cmd, но чет не так(
volvo
Цитата
но чет не так(
Ну вот то и не так, что ты установил в C:\MASM, а у меня установлено в D:\MASM

Поменяй везде название диска, в исходнике. И не надо набирать masam при линковке, точнее будь...
Client
УРА!!! ПОЛУЧИЛОСЬ)
И теперь ряд нубских вопросов:
1) Запускать можно только таким способом программы?
2) Что такое /c, /coff, /SUBSYSTEM:CONSOLE, /LIBPATH?
3) У меня почему-то каракульки((
volvo
Значит убедись, что ASM-файл в кодировке 1251 (Cyrillic Windows), и измени программу вот так:
.data
first dd ?
second dd ?
codePage DWORD 1251 ; добавь это в раздел data
.code
start:
invoke SetConsoleOutputCP, codePage ; и вот это - в самое начало code

mov first, sval (input("Первое число: "))
mov second, sval (input("Второе число: "))
print chr$("Результат:")
; ...

и перекомпилируй программу. Да, и еще... перед тем, как ее запускать, смени шрифт в консоли на Lucida Console (через Alt+Пробел -> Properties -> Font), иначе так и будут кракозябры...

Цитата
Запускать можно только таким способом программы?
Нет, можно скачать IDE типа RadASM, или чего-нибудь другого, и работать оттуда. Я предпочитаю делать это из ком. строки.
Цитата
Что такое /c, /coff, /SUBSYSTEM:CONSOLE, /LIBPATH?
Ключи компиляции. Назначение см. в хелпе...
Client
Все исправил, он у меня открывался через Visual ASM и там уже он сам менял текст
СПАСИБО VOLVO!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.