IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

 
 Ответить  Открыть новую тему 
> 2 переменные, самое простое
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Привет!
У нас начался ассемблер, но чет пока в теории ничего не понятно(
Может кто написать код для сложения 2-х вводимых чисел?
И где этот код можно написать? Какой асм нужен?

Сообщение отредактировано: Client -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
И где этот код можно написать? Какой асм нужен?
Ну, вот с этого и надо начинать... Скажи, какой тебе 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 должен быть установлен.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


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

Добавлено через 12 мин.
Скачал масм, вот что получилось. Сохранил в ехе виде, запустил, но ничего не видно( Что не так?


Эскизы прикрепленных изображений
Прикрепленное изображение Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
Скачал масм, вот что получилось.
Это не MASM, это у тебя какая-то IDE... masm - это только компилятор. Вот так вот это выглядит у меня:


Эскизы прикрепленных изображений
Прикрепленное изображение
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


А где скачать нужный масм? В гугле "скачать masm32" вроде одни эмуляторы wacko.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Вот тут я про это написал: Кнопочный калькулятор (включая и то, что надо сделать перед установкой)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Скачал, установил в С: (C:masm32\). Создал папку mydocs, в которую сохранил файл my1.asm с кодом
Написал по примеру в cmd, но чет не так(


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Цитата
но чет не так(
Ну вот то и не так, что ты установил в C:\MASM, а у меня установлено в D:\MASM

Поменяй везде название диска, в исходнике. И не надо набирать masam при линковке, точнее будь...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


УРА!!! ПОЛУЧИЛОСЬ)
И теперь ряд нубских вопросов:
1) Запускать можно только таким способом программы?
2) Что такое /c, /coff, /SUBSYSTEM:CONSOLE, /LIBPATH?
3) У меня почему-то каракульки((


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Значит убедись, что 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?
Ключи компиляции. Назначение см. в хелпе...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Все исправил, он у меня открывался через Visual ASM и там уже он сам менял текст
СПАСИБО VOLVO!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 31.10.2020 14:25
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name