Форум программистов, компьютерный форум, киберфорум
FASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 57

Перевод кода из fasmg в fasm

11.05.2017, 20:43. Показов 4561. Ответов 10
Метки fasm (Все метки)

Студворк — интернет-сервис помощи студентам
Есть код, написанный на fasmg, взятый с официального сайта, как пример программы для AVR. Его нужно переписать в стиле fasm - чтобы программа была та же самая, в общем, но запускать можно было как fasm. Прошу помочь.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
; This example upon each reset increases the 8-bit counter stored in EEPROM
; and then presents the bits of this value on the pins of port A.
 
include "avr.inc"
include "..\8051\hex.inc"
 
include "m16def.inc"
 
.org 0
    rjmp    start
 
start:
    ldi r16,RAMEND and $ff
    out spl,r16
    ldi r16,RAMEND shr 8
    out sph,r16
 
    ldi r16,$37
    call    eeprom_read_byte
    mov r17,r16
    inc r17
    ldi r16,$37
    call    eeprom_write_byte
 
    ldi r18,11111111b
    out DDRA,r18
    out PORTA,r17
 
hang:   jmp hang
 
eeprom_read_byte:
; r16 = EEPROM address
; returns: r16 = byte data
    sbic    EECR,EEWE
    jmp eeprom_read_byte
    out EEARL,r16
    sbi EECR,EERE
    in  r16,EEDR
    ret
 
eeprom_write_byte:
; r16 = EEPROM address
; r17 = byte data
    cli
    while_eeprom_busy:
    sbic    EECR,EEWE
    jmp while_eeprom_busy
    out EEARL,r16
    out EEDR,r17
    sbi EECR,EEMWE
    sbi EECR,EEWE
    sei
    ret
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.05.2017, 20:43
Ответы с готовыми решениями:

Перевод кода с FASM на MASM
Есть код программы, который нужно перевести на MASM, уж не знаю на чем он написан(вроде FASM). Помогите, если не переводом кода, то хотя бы...

Написать процедуру наложения маски AND на числа в массиве (fasm -> masm)
Добрый вечер! Пишу я вам от полной безысходности! Начал изучение ассемблера не давно, поэтому многого не знаю. Прошу помочь с написанием...

Перевод из MASM в FASM
Здравствуйте, Visual Studio скомпилировала такой код, как его перевести в формат, пригодный для FASM? push 0 lea eax,...

10
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8644 / 4479 / 1669
Регистрация: 01.02.2015
Сообщений: 13,883
Записей в блоге: 11
11.05.2017, 20:58
Первый раз увидел слово "fasmg", попробовал безуспешно найти.
Но это полбеды.
Вторая её половина в том, что fasm исключительно для процессоров Intel x86, а исходник приведён для Atmel AVR.

А теперь по существу.
Можно по русски пояснить проблему?
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6808 / 2048 / 238
Регистрация: 14.12.2014
Сообщений: 4,297
Записей в блоге: 12
11.05.2017, 21:10
cppastronaut, fasm не поддерживает команды микроконтроллеров.
Такой код будет компилироваться только в fasmg.
Ну разве что так:
Assembler
1
2
3
4
5
6
format binary as 'hex'
db ':1000000000C00FE50DBF04E00EBF07E308D0102FBE',13,10
db ':10001000139507E30AD02FEF2ABB1BBBFFCFE19953',13,10
db ':10002000FECF0EBBE09A0DB30895F894E199FECF90',13,10
db ':0C0030000EBB1DBBE29AE19A7894089583',13,10
db ':00000001FF',13,10
0
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 57
11.05.2017, 21:11  [ТС]
https://flatassembler.net/docs.php?article=fasmg - что такое fasmg.
https://flatassembler.net/download.php - где скачать примеры (flat assembler g hsjj0).
Проблема по-русски: нужно взять пример для fasmg, который выше приведен, создать из него файл *.hex. Затем взять такой же по назначению код, но написанный на fasm, также сделать из него hex, а потом сравнить полученные hex-ы. В университете задание дали такое.
Вот и вопрос возник - как-нибудь можно переработать этот имеющийся код в fasm?
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6808 / 2048 / 238
Регистрация: 14.12.2014
Сообщений: 4,297
Записей в блоге: 12
11.05.2017, 21:15
ФедосеевПавел, https://flatassembler.net/download.php – внизу есть ссылка на fasmg, там поддерживается множество всяких процессоров, контроллеров и пр. Можно даже самому написать

Добавлено через 1 минуту
одновременно
cppastronaut, причём у fasm и fasmg немного синтаксис отличается, в части макросов особенно. Т.е. нельзя взять include'ы от fasmg и использовать их в fasm.

Добавлено через 2 минуты
Под другие (не x86/64) архитектуры есть только FASMARM (специально заточенный), ну и всё... Но ARM и AVR – разные вещи...
1
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 57
11.05.2017, 21:24  [ТС]
Как тогда мне быть, какие-нибудь вообще коды программ на fasm и fasmg я могу сравнить?

Добавлено через 5 минут
Цитата Сообщение от Jin X Посмотреть сообщение
fasm не поддерживает команды микроконтроллеров
Можно уточнить - что значит не поддерживает?

И еще - есть ли отладчик для fasmg?
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6808 / 2048 / 238
Регистрация: 14.12.2014
Сообщений: 4,297
Записей в блоге: 12
11.05.2017, 21:34
cppastronaut, в смысле "сравнить"?
Посмотреть 2 одинаковых кода, написанных для fasm и fasmg? Не под AVR, естественно...
В чём суть-то вообще?

Добавлено через 1 минуту
Цитата Сообщение от cppastronaut Посмотреть сообщение
что значит не поддерживает?
Значит, что если написать в fasm ldi... или rjmp..., он выдаст ошибку: "illegal instruction".

Добавлено через 24 секунды
Потому что он не знает таких инструкций.

Добавлено через 6 минут
Про отладчик: Отладчик для fasmg
0
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 57
11.05.2017, 21:36  [ТС]
Суть в том, что преподаватель нам дал задание запустить в отладчике примеры кодов, написанных на fasmg для avr (примеры, которые находятся на сайте flat assembler).
В Atmel Studio пытались проверить, работает ли программа - с ним не вышло. Тогда вместе с преподавателем сделали из этого hex с помощью того, что было в исходной папке, после чего преподаватель сказал - сравните hex-ы двух одинаковых программ, которые сделаны на fasm и на fasmg.
А вообще в целом суть задания: пошагово разобрать с помощью отладчика примеры для fasmg для avr и arm и описать действие программ.
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6808 / 2048 / 238
Регистрация: 14.12.2014
Сообщений: 4,297
Записей в блоге: 12
11.05.2017, 21:56
Лучший ответ Сообщение было отмечено Mikl___ как решение

Решение

Если нужно сравнить 2 одинаковые программы для fasm и fasmg, то это можно сделать только для архитектуры x86 (64), проще всего .COM-программу под DOS.

fasm:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
org 100h
 
  mov ah,0Fh
  int 10h
  mov ah,3
  int 10h
  mov ax,1301h
  mov bl,1Eh
  mov cx,lMsg
  mov bp,Msg
  int 10h
  int 20h
 
Msg db 'Hello world!',13,10
lMsg = $-Msg
fasmg:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
include '8086.inc'
org 100h
 
  mov ah,0Fh
  int 10h
  mov ah,3
  int 10h
  mov ax,1301h
  mov bl,1Eh
  mov cx,lMsg
  mov bp,Msg
  int 10h
  int 20h
 
Msg db 'Hello world!',13,10
lMsg = $-Msg
Разница в одной строке (include).
А hex'ы можно посмотреть через какой-нибудь вьювер (HIEW, скажем или в FAR'е).

Добавлено через 2 минуты
Потому что код для AVR/ARM в fasm не сделать никак. ARM можно в fasmarm (хотя лично я не пробовал).
Разве что через db или самому сделать/переделать макросы, генерирующие коды для AVR/ARM, но это тот ещё гемор...

Добавлено через 4 минуты
Ещё в папке examples\x86 (fasmg) есть примеры и для Windows (win32.asm, win64.asm). И для DOS (mandel.asm, life.asm и пр). Там, по сути, только include убрать (для fasm) и всё
2
0 / 0 / 0
Регистрация: 13.10.2021
Сообщений: 1
14.10.2021, 00:05
Не бывает макроассемблеров которые не поддерживают какие то инструкции!!!
Подобно тому как под fasmg посредством макросов реализуются инструкции архитектуры AVR, посредством аналогичных макросов но уже синтаксиса
0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
16.10.2021, 18:36
Достаточно, чтобы ассемблер позоволял определять свои символы и выполнять простейшие вычисления для формирования инструкций и адресов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.10.2021, 18:36
Помогаю со студенческими работами здесь

Текстовый редактор (преобразовать код из TASM в FASM)
Имеется код текстового редактора. Нужно данный код преобразовать в FASM, чтоб нормально запускался и компилировался. Заранее благодарен. ...

Запуск исходного кода ОС на FASM
Не могу понять в чем дело. Откомпилировал листинг ОС, которую нашел на вашем форуме, и немогу найти исходную .exe программу ! Что делать? ...

Перевод числа в текстовую строку, исправить код (FASM)
Помогите найти ошибку в программе и исправить её( программа должна переводить данное число в текстовую строку(в десятичной системе) и...

Перевод из 2-ной в 16-ную систему счисления. Из Masm в Fasm
Имеется код программы на ассемлер. Не могу корректно перевести её на FASM. Дан код: .model small .stack 100h .data m1 db...

Перевод числа в строку и ее вывод через MessageBox в FASM'e
берем программу "привет мир" include '%fasminc%/win32ax.inc' .data Caption db 'Моя первая программа.',0 _otvet db 'Всем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru