Пн мар 23, 2020 15:23:33
Пн мар 23, 2020 15:27:27
Пн мар 23, 2020 15:30:32
- если та же задача решена другим способом - неудачный вариант отметается, но задача то решена.может быть неудачной
Пример, который я привёл выше - всего лишь одна из разновидностей классического решения при работе под " чистым ассемблером". И таких приёмов, некорректных по отношению к "чистому Си" достаточно много встречается.
Пн мар 23, 2020 15:34:41
Пн мар 23, 2020 15:38:37
Пн мар 23, 2020 15:56:36
Пн мар 23, 2020 16:23:31
Пн мар 23, 2020 16:35:19
Пн мар 23, 2020 17:02:47
Пн мар 23, 2020 18:51:26
Пн мар 23, 2020 19:20:15
NCLUDE это директива, которая позволяет включать часть кода в конечную программу.
Вы найдете повторяющиеся строки:
mov dx,offset Hellostr
mov ah,09h
int 21h
mov dx,offset str2
mov ah,09h
int 21h
Давайте изменим этот шаге используя директиву INCLUDE. Создает файл Write.asm с кодом внутри:
mov ah,09h ; функция вывода строки
int 21h
И переписываем шаг используя INCLUDE - write.asm:
MODEL TINY
STACK 100h
DATASEG
Hellostr DB 'Hello First Step Site $'
str2 DB 'Step 16 $'
CODESEG
start:
mov ax,@data
mov ds,ax
mov dx,offset Hellostr
INCLUDE write.asm
mov dx,offset str2
INCLUDE write.asm
mov ah,04Ch
mov al,1h
int 21h
Пн мар 23, 2020 21:41:19
Пн мар 23, 2020 22:05:31
Все готово, код из Write.asm будет включен в на место INCLUDE поэтому нам Write.asm не нужно компилировать. BAT файл будет как обычно.
..\bin\tasm program.asm
..\bin\tlink program.obj
Пн мар 23, 2020 23:28:57
Вт мар 24, 2020 08:58:12
Вт мар 24, 2020 09:08:17
"Мне удалось соорудить вариант слэнга для организации многофайловиков под ассемблером (одинаково работающий в рамках всех трёх семейств - mcs51/avr/pic)"
"под одну гребенку не причешешь"
Вт мар 24, 2020 09:44:05
Вт мар 24, 2020 10:00:09
Вт мар 24, 2020 10:10:50
согласен и давно это советую всем, кто не может расстаться с ассемблером.oleg110592 писал(а):взять нормальный ассемблер с линкером GNU-AS.
Вт мар 24, 2020 10:49:30