Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как? кодирование-дек. АП с записью в буфер. помогите решить задачу 
:(
    Опции темы
vanyatim
  Дата 29.5.2011, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 29.5.2011

Репутация: нет
Всего: нет



Привет!

Помогите, пожалуйста, решить задачу на Assembler для I8085.

Есть исходник программы, на основе которого надо решить следующую задачу (точнее просто дополнить):

Для кодирования содержимого буфера BUF1 и декодирования BUF2 использовать суммирование-вычитание текста с арифметической прогрессией, параметры которой a0 = 1, d = 16. Организовать вывод членов АП в выходной файл.

L_01.A85
; ВАРИАНТ ПРОГРАММЫ ИЗ НЕСКОЛЬКИХ ИСХОДНЫХ ФАЙЛОВ
; РАЗДЕЛ 7 ЛАБОРАТОРНОГО ПРАКТИКУМА
;-------------------------------------------------
; MAIN PROGRAM

%INCLUDE "OPIS.INC"    ; ПОДКЛЮЧЕНИЕ 
%INCLUDE "LAB_IO.INC"    ;    ДОПОЛНИТЕЛЬНЫХ 
%INCLUDE "INIT_BU.MAC"    ;     ТЕКСТОВЫХ ФАЙЛОВ

RAM EQU 0800H
ROM EQU 0000H
LEN_RAM EQU 0800H

;    BUFFERS
TEXTSIZE EQU 20H

DEFSEG DATA1,CLASS=DATA,START=RAM
SEG DATA1
BUF1: DS TEXTSIZE
BUF2: DS TEXTSIZE
BUF3: DS TEXTSIZE

; STACK
STACKSIZE    EQU    32
DEFSEG STACK,CLASS=DATA,START=RAM+LEN_RAM-STACKSIZE
SEG STACK
STACKR: DS STACKSIZE
STPOINT EQU $ ;

; FLAGS
SEG DATA1
PASS1    DS    1
; MASKS FOR EXAMPLES
MASK11 EQU 00000011B ;
MASK12    EQU    01010000B    ;

;
; PROGRAMM
;
EXTERN DEQH    ; ОБЪЯВЛЕНИЕ ВНЕШНЕГО ИМЕНИ, 
; ПОДКЛЮЧАЕМОГО НА СТАДИИ КОМПОНОВКИ

SEG CODE

PROG: LXI SP,STPOINT
MVI A,0 ;ALL INPUT
OUT DB8355
DCR A
OUT DA8355 ;ALL OUTPUT

INIT1    STACKR,'.',STACKSIZE
INIT1 BUF1,'1',TEXTSIZE
INIT1 BUF2,'2',TEXTSIZE
INIT1 BUF3,'3',TEXTSIZE
;
; MAIN
;
; INPUT TO PORT A 8355
LXI H,BUF1+TEXTSIZE-1
MVI    M,0    ;END OF BUFFER
XCHG
LXI H,BUF1
LOOPIN:
IN PB8355
MOV M,A
INX H
CALL DEQH
JNZ LOOPIN
; DECODING
LXI H,BUF1
CALL    KONSUM

LXI    D,BUF2
MVI    A,1
STA    PASS1
LOOP1:
MOV A,M
ORA    A
JZ    ENDTEXT
CALL    CODING
STAX    D
INX    H
INX    D
JMP    LOOP1
ENDTEXT:
STAX D
LDA    PASS1
ORA    A
MVI    A,0
STA    PASS1
JZ    HALT
PRODOLJ:
; ONCE MORE
LXI    H,BUF2
LXI    D,BUF3
JMP    LOOP1
;
HALT:
LXI H,BUF3
CALL KONSUM
; OUTPUT FROM THE PORT B
LXI H,BUF2
MVI B,TEXTSIZE-1
LOOPOUT:
MOV A,M
OUT PA8355
INX H
DCR B
JNZ LOOPOUT

HLT

;======    SUBROUTINES ============
CODING:
CMA
RET

KONSUM:
;
RET

END

То, что сделал я упорно не работает. Если даже и кодирует, то в буфер писать отказывается на отрез это точно!

Спасибо за помощь заранее!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0373 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.