1816ВЕ48

8-битные микроконтроллеры и микропроцессоры от Intel и их клоны, а также компьютеры на них построенные

Moderator: Shaos

User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: 1816ВЕ48

Post by fifan »

Пробовал так - не прокатило.
You do not have the required permissions to view the files attached to this post.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 1816ВЕ48

Post by Lavr »

fifan wrote:Пробовал так - не прокатило.
Тогда ни чем, к сожалению, помочь не могу. :( Я не пользовался ПО для ВЕ48 под "Специалистом_МХ".
iLavr
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: 1816ВЕ48

Post by fifan »

Тут Mondx посоветовал написать в десятичном виде: DB 128 (правильнее так - DB 128d) тоже не работает. Дазассемблирование я делать не буду.
Всем спасибо.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 1816ВЕ48

Post by Lavr »

fifan wrote:...написать в десятичном виде: DB 128 (правильнее так - DB 128d) тоже не работает.
Так может быть компилятору именно DB не нравится? :roll:
Может быть у него вместо привычного DB другой псевдооператор?

Поскольку у "Специалиста" программки маленькие, ты бы вывел этот компилятор на экран в текстовом
виде и посмотрел бы - есть ли там DB ?

Я встречал и другие варианты вместо этого слова.

Или скинь сам компилятор сюда - я гляну. У меня просто нет его.

А ещё попробуй вместо "H" - "h" был такой "косяк" помнится в обычном ассемблере для 580.
iLavr
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: 1816ВЕ48

Post by fifan »

Всё же дело обстоит ещё хуже. Мало то, что перед написанием числового значения и названия метки нужно писать наклонную черту:

Code: Select all

ORG /0000H
MOV A/80H
JMP /LOOP
ADD A/PATT-01H
нужно ещё эту наклонную черту писать (см. последнюю мнемонику) вместо сочетания ,# (мнемоника add a,#число).
Тогда определение числовых значений должно быть именно такое, на каждое число своя DB:

Code: Select all

PATT:    DB /06H
         DB /5BH
         DB /4FH
         DB /66H
         DB /6DH
         DB /7DH
         DB /07H
         DB /7FH
         DB /6FH
Вот такой идиотский ретранслятор мнемоники 8048 Asm_1816.COM в Специалисте МХ. Автор прошивок для процессора 8051 для своих кассетных магнитофонов (http://leoniv.diod.club/projects/audio/ ... k-140.html) признался что текст писал в Специалисте (наверное всё же в Специалисте МХ) с переделанной программой ассемблера. У него более красиво и по учебнику:

Code: Select all

	MOV R1,#0ECH
	ADD A,#4EH
	JC NORC5
        .DB 016H,00CH,019H,002H,000H,000H,000H,000H
W8582  	.EQU 0A0H
Он правда добавил точку перед EQU и DB, но зато в строке DB можно писать много чисел.
Попрошу у него этот ассемблер, хотя прошло столько лет, потерял наверное.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 1816ВЕ48

Post by Lavr »

fifan wrote:Всё же дело обстоит ещё хуже. Мало то, что перед написанием числового значения и названия метки нужно писать наклонную черту:

Code: Select all

ORG /0000H
MOV A/80H
JMP /LOOP
ADD A/PATT-01H
нужно ещё эту наклонную черту писать (см. последнюю мнемонику) вместо сочетания ,# (мнемоника add a,#число).
Ахаха! Афигеть - никогда не угадаешь, если не знаешь! :lol:
А я только достал с флешки старые *.odi для "Специалиста", вынул этот ASM1816.EXE, написал для пробы:

Code: Select all

     ORG  0000H
     DB    'A'
     DB    17H
     DB    FFH
     END
Компилирую, а ему - ORG 0000H не нравится! :roll:

Ну да ладно, раз уж выяснили, то: "Всем - спасибо, все - свободны!", как Tronix говорит... :ebiggrin:
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 1816ВЕ48

Post by Lavr »

Lavr wrote:Афигеть - никогда не угадаешь, если не знаешь! :lol:
Но в итоге - угадали бы, я правильно сразу предположил:
Lavr wrote:...ты бы вывел этот компилятор на экран в текстовом виде и посмотрел бы - есть ли там DB ?
В текстовом виде DB / в коде вполне видно:
DB.PNG
Халтурно немного сделан этот ассемблер для 1816ВЕ48. :(
Оригинальный ассемблер для К580ВМ80 в пакете RAMFOS очень интересно и компактно написан! :kruto:

Но если кто хочет поиграться в этот ассемблер для 1816ВЕ48, то ниже в архиве он с хелпом, под emu от b2m.
ASMBE48.zip
А то я полез было взять его с сайта fifan-a и не нашел там, пришлось флешки ворошить... :-?
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 1816ВЕ48

Post by Lavr »

fifan wrote:У него более красиво и по учебнику:

Code: Select all

	MOV R1,#0ECH
	ADD A,#4EH
	JC NORC5
        .DB 016H,00CH,019H,002H,000H,000H,000H,000H
W8582  	.EQU 0A0H
Он правда добавил точку перед EQU и DB, но зато в строке DB можно писать много чисел.
Попрошу у него этот ассемблер, хотя прошло столько лет, потерял наверное.
Попробуй мой ASM48, на котором я здесь игру писал. Мне кажется, синтаксис совпадает.
И у меня он хорошо работал и сам по себе и в связке с Proteus, если положить его в папку Tools.
ASM48.zip
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: 1816ВЕ48

Post by fifan »

Спасибо, попробую.

Что за расширение emu? С эмулятором emu я знаком, если это для него, то как ему файл ASMBE48.emu скормить?
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: 1816ВЕ48

Post by fifan »

Кстати обещанный ассемблер под 8048/8051. Но непонятное назначение программ и их запуск. Только редактор работает.
You do not have the required permissions to view the files attached to this post.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 1816ВЕ48

Post by Lavr »

fifan wrote:Что за расширение emu? С эмулятором emu я знаком, если это для него, то как ему файл ASMBE48.emu скормить?
Просто нажать кнопочку File и загрузить файл *.emu. А говоришь, что с эмулятором emu знаком. :wink:
Файл *.emu - это сохранено текущее состояние эмулятора от b2m всё целиком.
iLavr
b2m
Devil
Posts: 907
Joined: 26 May 2003 06:57

Re: 1816ВЕ48

Post by b2m »

А где можно скачать этот Asm_1816?

Нашёл только руководство пользователя:

 RP_1816a.TXT

Code: Select all

РУКОВОДСТВО  ПОЛЬЗОВАТЕЛЯ

	           Программа ассемблера Asm_1816

	             для микроэвм серии КР1816
--------------------------------------------------------------
	         Ассемблер - Asm_1816  V1.0
--------------------------------------------------------------
 Данный ассемблер предназначен для преобразования (трансляции)
исходных текстов в объектные модули для микроэвм серии КР1816.
 После запуска программа сразу запрашивает текстовый  файл,  о
чем  сообщает  в  верхней  служебной  строке.  После  загрузки
текстового файла в верхней служебной строке  отображается  имя
программы и имя ассемблируемого файла, а на  нижней  служебной
строке выводится список основных директив:
  F1-COD  F2-LIN  F3-EXE
F3 - полный акт  трансляция  с  кратким  протоколом;  конечный
	 рабочий   адрес   программы/конечный   адрес   размещения
	 программы в буфере (0000-0FFFh)/число обнаруженых ошибок.
	 Используется  при  одноактном  режиме  трансляции.
F2 - акт создания файла связей; используется  при  многоактном
	 режиме трансляции; при запуске программа  сразу  запраши-
	 вает файл связей (тип файла "LIN"). Его находят  курсором
	 и подключают клавишей <ВК>. Если  создается  первый  файл
	 связей, то в  ответ  на  запрос  следует  нажать  клавишу
	 . При трансляции на экран выводятся, кроме  краткого
	 протокола, строки всех внешних меток. При этом  в  начале
	 этих строк  выводятся  уже  согласованные  значения  этих
	 меток. По  завершении  файл  связей  сохраняют  на  диске
	 взамен  предыдущего.
F1 - акт создания объектных модулей; используется  при  много-
	 актном режиме трансляции;  при  запуске  программа  сразу
	 запрашивает файл связей. Его находят курсором  и  подклю-
	 чают  клавишей  <ВК>.

 В процессе трансляции выводятся  так  же  строки,  в  которых
обнаружены  ошибки.  При  этом  место  где  обнаружена  ошибка
выделяется в текстовой строке инверсным  цветом,  а  в  начале
выделенного фрагмента вставляется символ  "вопроса".  Одновре-
менно символ вопроса вставляется в  текст.  И  при  выходе  из
ассемблера в редактор эти символы вопроса можно легко и быстро
найти  директивой  поиска.

 Полный протокол  трансляции  можно  получить,  нажав  клавишу
<НР>,  до  запуска  директивы  трансляции.  Управлять  выводом
полного протокола можно на любом  этапе  трансляции,  отпуская
или  нажимая  клавишу  <НР>.
  Данный  ассемблер   предусматривает   два   режима   работы:
ОДНОАКТНЫЙ - когда формируется программа объемом до  4К.  Этот
режим  реализуется  директивой  F3.
МНОГОАКТНЫЙ - когда программа  объемом  свыше  4К  формируется
согласованно по частям. Порядок такой: в начале все  текстовые
файлы-модули транслируются директивой  F2  формируя  при  этом
файл  связей.  Затем  все  тексовые  файлы-модули  транслируют
директивой F1 с подключением файла связей. Получаемые  объект-
ные модули кодов (тип EXE) сохраняют на диске.  По  завершении
полученные файлы EXE объединяют в общую  программу,  если  это
необходимо.

 Метки могут состоять из русских (КОИ7) и латинских  заглавных
и прописных символов или цифр, начинаясь с  буквы.  Транслятор
допускает метки длиной до  6  символов.  Наиболее  оптимальной
рекомендуется длина 3 символа. Комментарии отделяются символом
[;].
 В тексте  можно  использовать  следующие  операторы  (псевдо-
команды):
ORG - задает своим операндом начальный рабочий адрес программы.
EQU - присваивает метке значение, заданное числом  или  меткой
другого  числа.
DB  - занесение в память байтов  или  символов,  выделяемых  с
обеих  сторон  символом  ['].
END - указывает  на  конец  программы,  прерывает  трансляцию.
 В  качестве  операндов  могут  быть  использованы  константы,
арифметические выражения, содержащие  знаки  [+],  [-],  имена
меток и регистров микропроцессора, десятичные  и  шестнадцате-
ричные числа. Десятичные числа, кроме команд RST, обозначаются
в конце символом [d], а шестнадцатеричные символом [h] или [H].

--------------------------------------------------------------
	        Система команд микроэвм серии КР1816
--------------------------------------------------------------
 В системе команд описанной ниже применена символика  принятая
для данной серии микроэвм. Однако, обращаем ваше  внимание  на
особенности выделения операндов в мнемонике команд. В  литера-
туре для этой цели использовался символ "#". К сожалению  этот
вариант оказался не самым  практичным,  так  как  очень  часто
возникало неудобное сочетание символов "," и  "#".  Это  изли-
шество вызывало немало удобств при написании текста программы.
 Поэтому нами было принят следующий способ выделения операндов.
Символ "," означает, что после него указана мнемоника регистра
микроэвм. Символ "/" означает, что после него  указан  операнд
либо меткой, либо числом. Причем, эти символы вместе нигде  не
сочетаются. Напоминаем также, что десятичные  и   шестнадцате-
ричные числа различаются только символам "d",  "h",  "H"  при-
водимыми сразу после  числа,  например,  FFh,  EEH  или  125d.
 Ниже в коментариях приняты следующие сокращения:
ПД - память данных; ПП - память программ; РОН - регистр общего
назначения; А - аккумулятор.
 В заголовке таблицы после кода команд  указано  число  циклов
выполнения команды и число байтов команды.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
мнемон./операнд/код/ц/б/  коментарий    KP1816BE48
______________________________________________________________
Команды преобразования данных
	ADD  A,@R0   60 1 1; сложение байта ячейки ПД
	ADD  A,@R1   61 1 1; с байтом А
	ADD  A,R0    68 1 1; сложение байта РОН и байта А
	ADD  A,R1    69 1 1
	ADD  A,R2    6A 1 1
	ADD  A,R3    6B 1 1
	ADD  A,R4    6C 1 1
	ADD  A,R5    6D 1 1
	ADD  A,R6    6E 1 1
	ADD  A,R7    6F 1 1
	ADD  A/dd    03 2 2; сложение байта данных с байтом А
	ADDC A,@R0   70 1 1; сложение бита переноса, байта
	ADDC A,@R1   71 1 1; ячейки ПД с байтом А
	ADDC A,R0    78 1 1; сложение бита переноса,
	ADDC A,R1    79 1 1; байта РОН с байтом А
	ADDC A,R2    7A 1 1
	ADDC A,R3    7B 1 1
	ADDC A,R4    7C 1 1
	ADDC A,R5    7D 1 1
	ADDC A,R6    7E 1 1
	ADDC A,R7    7F 1 1
	ADDC A/dd    13 2 2; слож.переноса, байта дан. с байтом А

	ANL  A,@R0   50 1 1; логическое И байта А
	ANL  A,@R1   51 1 1; с байтом ячейки ПД
	ANL  A,R0    58 1 1; логическое И байта А
	ANL  A,R1    59 1 1; с байтом РОН
	ANL  A,R2    5A 1 1
	ANL  A,R3    5B 1 1
	ANL  A,R4    5C 1 1
	ANL  A,R5    5D 1 1
	ANL  A,R6    5E 1 1
	ANL  A,R7    5F 1 1
	ANL  A/dd    53 2 2; логическое И байта А и байта данных
	ANL  BUS/dd  98 2 2; логическое И байта данных и байта Р0
	ANL  P1/dd   99 2 2; лог. И байта данных и байта порта Р1
	ANL  P2/dd   9A 2 2; лог. И байта данных и байта порта Р2
	ANLD P4,A    9C 2 1; лог. И содержимого порта с маской
	ANLD P5,A    9D 2 1; содержащейся в А(разряды 0-3)
	ANLD P6,A    9E 2 1; результат записыв. в порт, А - не
	ANLD P7,A    9F 2 1; меняется

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
мнемон./операнд/код/ц/б/  коментарий    KP1816BE48
______________________________________________________________
	CALL /aa     X4 2 2; вызов подпрограммы
Команды манипуляции с флажками
	CLR  A       27 1 1; обнуление байта А
	CLR  C       97 1 1; сброс переноса
	CLR  F0      85 1 1; установка бита F0 в 0
	CLR  F1      A5 1 1; установка бита F1 в 0
	CPL  A       37 1 1; инвертирование байта А
	CPL  C       A7 1 1; инвертирование бита переноса
	CPL  F0      95 1 1; инвертирование бита F0
	CPL  F1      B5 1 1; инвертирование бита F1

	DA   A       57 1 1; десятичная коррекция
	DEC  A       07 1 1; декремент байта А
	DEC  R0      C8 1 1; декремент байта РОН
	DEC  R1      C9 1 1
	DEC  R2      CA 1 1
	DEC  R3      CB 1 1
	DEC  R4      CC 1 1
	DEC  R5      CD 1 1
	DEC  R6      CE 1 1
	DEC  R7      CF 1 1
	DIS  I       15 1 1; запрещение внешних прерываний на INT
	DIS  TCNTI   35 1 1; запрещение прер.по перепол.тайм/сч.
	DJNZ R0/aa   E8 2 2; переход, если R0-1>0
	DJNZ R1/aa   E9 2 2; переход, если R1-1>0
	DJNZ R2/aa   EA 2 2; переход, если R2-1>0
	DJNZ R3/aa   EB 2 2; переход, если R3-1>0
	DJNZ R4/aa   EC 2 2; переход, если R4-1>0
	DJNZ R5/aa   ED 2 2; переход, если R5-1>0
	DJNZ R6/aa   EE 2 2; переход, если R6-1>0
	DJNZ R7/aa   EF 2 2; переход, если R7-1>0

	EN   I       05 1 1; разрешение внешних прерываний на INT
	EN   TCNTI   25 1 1; разрешение прер.по перепол.тайм/сч.
	ENTO CLK     75 1 1; разреш.вывода имп.синхрон. на T0

	IN   A,P1    09 2 1; ввод байта из порта Р1 в А
	IN   A,P2    0A 2 1; ввод байта из порта Р2 в А
	INC  @,R0    10 1 1; инкремент байта ячейки ПД0
	INC  @,R1    11 1 1; инкремент байта ячейки ПД1
	INC  A       17 1 1; инкремент байта А
	INC  R0      18 1 1; инкремент байта РОН
	INC  R1      19 1 1
	INC  R2      1A 1 1
	INC  R3      1B 1 1
	INC  R4      1C 1 1
	INC  R5      1D 1 1
	INC  R6      1E 1 1
	INC  R7      1F 1 1
	INS  A,BUS   08 2 1; ввод(строб) байта из порта Р0 в А

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
мнемон./операнд/код/ц/б/  коментарий    KP1816BE48
______________________________________________________________
Команды передачи управления
	JB0  /aa     12 2 2; переход, если А=0
	JB1  /aa     32 2 2; переход, если А=1
	JB2  /aa     52 2 2; переход, если А=2
	JB3  /aa     72 2 2; переход, если А=3
	JB4  /aa     92 2 2; переход, если А=4
	JB5  /aa     B2 2 2; переход, если А=5
	JB6  /aa     D2 2 2; переход, если А=6
	JB7  /aa     F2 2 2; переход, если А=7
	JC   /aa     F6 2 2; переход, если перенос
	JF0  /aa     B6 2 2; переход, если F0=0?
	JF1  /aa     76 2 2; переход, если F1=0?
	JMP  /aa     X4 2 2; безусловный переход
	JMPP @,A     B3 2 1; безусловный переход по адресу А
	JNC  /aa     E6 2 2; переход, если неперенос
	JNI  /aa     86 2 2; переход, если INT=0
	JNZ  /aa     96 2 2; переход, если байт А не равен нулю
	JNT0 /aa     26 2 2; переход, если Т0=0
	JNT1 /aa     46 2 2; переход, если Т1=0
	JZ   /aa     C6 2 2; переход, если байт А равен нулю
	JT0  /aa     36 2 2; переход, если Т0=1
	JT1  /aa     56 2 2; переход, если Т1=1
	JTF  /aa     16 2 2; переход, если ТF=1

Команды пересылки данных
	MOV  @R0,A   A0 1 1; передача байта А в ПД
	MOV  @R1,A   A1 1 1; косвенно адресуемую байтом РОН
	MOV  @R0/dd  B0 2 2; непосредственная передача в ПД
	MOV  @R1/dd  B1 2 2; косвенно адресуемую байтом РОН

	MOV  A,@R0   F0 1 1; передача косвенно адресуемого
	MOV  A,@R1   F1 1 1; байта ПД в аккумулятор
	MOV  A,PSW   C7 1 1; передача регистра состояний в А
	MOV  A,R0    F8 1 1; передача байта
	MOV  A,R1    F9 1 1; регистра общего назначения
	MOV  A,R2    FA 1 1; РОН в аккумулятор
	MOV  A,R3    FB 1 1
	MOV  A,R4    FC 1 1
	MOV  A,R5    FD 1 1
	MOV  A,R6    FE 1 1
	MOV  A,R7    FF 1 1
	MOV  A,T     42 1 1; передача байта таймера/счетчика в А
	MOV  A/dd    23 2 2; непосред. передача в А

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
мнемон./операнд/код/ц/б/  коментарий    KP1816BE48
______________________________________________________________
	MOV  PSW,A   D7 1 1; передача А в регистр состояний
	MOV  R0,A    A8 1 1; передача байта
	MOV  R1,A    A9 1 1; аккумулятора в РОН
	MOV  R2,A    AA 1 1
	MOV  R3,A    AB 1 1
	MOV  R4,A    AC 1 1
	MOV  R5,A    AD 1 1
	MOV  R6,A    AE 1 1
	MOV  R7,A    AF 1 1
	MOV  R0/dd   B8 2 2; непосредственная передача
	MOV  R1/dd   B9 2 2; данных в РОН
	MOV  R2/dd   BA 2 2
	MOV  R3/dd   BB 2 2
	MOV  R4/dd   BC 2 2
	MOV  R5/dd   BD 2 2
	MOV  R6/dd   BE 2 2
	MOV  R7/dd   BF 2 2
	MOV  T,A     62 1 1; загрузка таймера/счетчика из А

	MOVD A,P4    0C 2 1; ввод байта из порта 4 в А
	MOVD A,P5    0D 2 1; ввод байта из порта 5 в А
	MOVD A,P6    0E 2 1; ввод байта из порта 6 в А
	MOVD A,P7    0F 2 1; ввод байта из порта 7 в А
	MOVD P4,A    3C 2 1; вывод байта А в порт 4
	MOVD P5,A    3D 2 1; вывод байта А в порт 5
	MOVD P6,A    3E 2 1; вывод байта А в порт 6
	MOVD P7,A    3F 2 1; вывод байта А в порт 7

	MOVN A,@A    E3 2 1; передача байта из ПП 3-стр. в А
	MOVP A,@A    A3 2 1; передача байта из ПП тек.стр. в А
	MOVX @R0,A   90 2 1; передача байта А
	MOVX @R1,A   91 2 1; в косвенно адр. внешнюю ПД
	MOVX A,@R0   80 2 1; передача косвенно адресуемого
	MOVX A,@R1   81 2 1; байта внешней ПД в А.

	NOP          00 1 1; нет операции
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
мнемон./операнд/код/ц/б/  коментарий    KP1816BE48
______________________________________________________________
Команды работы с аккумулятором
	ORL  A,@R0   40 1 1; логическое ИЛИ байта А
	ORL  A,@R1   41 1 1; с байтом ячейки ПД
	ORL  A,R0    48 1 1; логическое ИЛИ байта А
	ORL  A,R1    49 1 1; с байтом РОН
	ORL  A,R2    4A 1 1
	ORL  A,R3    4B 1 1
	ORL  A,R4    4C 1 1
	ORL  A,R5    4D 1 1
	ORL  A,R6    4E 1 1
	ORL  A,R7    4F 1 1
	ORL  A/dd    43 2 2; логическое ИЛИ байта А и байта данных
	ORL  BUS/dd  88 2 2; логическое ИЛИ байта данных и байта Р0
	ORL  P1/dd   89 2 2; логическое ИЛИ байта данных и байта Р1
	ORL  P2/dd   8A 2 2; логическое ИЛИ байта данных и байта Р2
	ORLD P4,A    8C 2 1; лог. ИЛИ содержимого порта с маской
	ORLD P5,A    8D 2 1; содержащейся в А(разряды 0-3),
	ORLD P6,A    8E 2 1; результат записыватся в порт,
	ORLD P7,A    8F 2 1; А-не меняется

	OUTL BUS,A   02 2 1; вывод байта А в порт Р0 и фиксация
	OUTL P1,A    39 2 1; вывод байта А в порт Р1 и фиксация
	OUTL P2,A    3A 2 1; вывод байта А в порт Р2 и фиксация

	RET          83 2 1; возврат из ПП без восст.рег.состояний
	RETR         93 2 1; возврат из ПП с восст.рег.состояний
	RL   A       E7 1 1; циклический сдвиг влево без переноса
	RLC  A       F7 1 1; циклический сдвиг влево с переносом
	RR   A       77 1 1; циклический сдвиг вправо без переноса
	RRC  A       67 1 1; циклический сдвиг вправо с переносом

	SEL  MB0     E5 1 1; выбор нулевого банка ПП (0-2047h)
	SEL  MB1     F5 1 1; выбор первого банка ПП (2048-4095h)
	SEL  RB0     C5 1 1; выбор нулевого банка раб.рег.(0-7h)
	SEL  RB1     D5 1 1; выбор первого банка раб.рег.(18h-1Fh)
	STOP TCNT    65 1 1; останов таймера/счетчика событий
	STRT CNT     45 1 1; запуск счетчика событий
	STRT T       55 1 1; запуск таймера
	SWAP A       47 1 1; обмен полубайтами аккумулятора

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
мнемон./операнд/код/ц/б/  коментарий    KP1816BE48
______________________________________________________________
	XCH  A,@R0   20 1 1; обмен байта аккумулятора
	XCH  A,@R1   21 1 1; и ячейки ПД
	XCH  A,R0    28 1 1; обмен байта аккумулятора
	XCH  A,R1    29 1 1; и РОН
	XCH  A,R2    2A 1 1
	XCH  A,R3    2B 1 1
	XCH  A,R4    2C 1 1
	XCH  A,R5    2D 1 1
	XCH  A,R6    2E 1 1
	XCH  A,R7    2F 1 1
	XCHD A,@R0   30 1 1; обмен мл.полубайтов аккумулятора
	XCHD A,@R1   31 1 1; и ячейки ПД косв.адр.РОН
	XRL  A,@R0   D0 1 1; исключающее ИЛИ байта А
	XRL  A,@R1   D1 1 1; с байтом ячейки ПД
	XRL  A,R0    D8 1 1; исключающее ИЛИ байта А
	XRL  A,R1    D9 1 1; с байтом РОН
	XRL  A,R2    DA 1 1
	XRL  A,R3    DB 1 1
	XRL  A,R4    DC 1 1
	XRL  A,R5    DD 1 1
	XRL  A,R6    DE 1 1
	XRL  A,R7    DF 1 1
	XRL  A/dd    D3 2 2; исключающее ИЛИ байта А и байта данных

Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 1816ВЕ48

Post by Lavr »

b2m wrote:А где можно скачать этот Asm_1816?
Так я же выложил его выше в виде файла под твой эмулятор: :roll:
download/file.php?id=12144

Там внутри выложенный тобой хелп и сам исполняемый файл...
iLavr
b2m
Devil
Posts: 907
Joined: 26 May 2003 06:57

Re: 1816ВЕ48

Post by b2m »

Мне вот интересно, а как народ файлы туда/сюда в эмуляторе Специалиста-МХ (применительно к RAMFOS) гоняет? И как это можно было бы упростить?
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 1816ВЕ48

Post by Lavr »

b2m wrote:Мне вот интересно, а как народ файлы туда/сюда в эмуляторе Специалиста-МХ (применительно к RAMFOS) гоняет?
И как это можно было бы упростить?
Если "туда/сюда" подразумевает из файловой системы РС в файловую систему Специалиста-МХ
и наоборот, то и у тебя и у Шевцова есть загрузка и выгрузка по адресам.
Это не совсем удобно для всех, именно поэтому я выложил в формате *.emu.

У Шевцова был формат *.all, сохранить состояние эмулятора целиком вместе с содержимым дисков.
Я для себя очень давно написал утилиту, которая корректно дописывала необходимый файл в образ
RAMDISKa файла формата *.all, а также могла создать такой файл и записать нужное в RAMDISK.

Также fifan выкладывал утилиту от Афанасьева, которая работает с файлами - образами дискет *.odi.
Если я не ошибаюсь, ибо не пользовался таким способом, но вроде как нужный файл можно записать в *.odi.
iLavr