Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2011, 13:16   #1
Vanya-tim
Новичок
Джуниор
 
Регистрация: 29.05.2011
Сообщений: 2
По умолчанию Задача кодирование

Привет!

Помогите, пожалуйста, решить задачу на 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
То, что сделал я упорно не работает. Если даже и кодирует, то в буфер писать отказывается на отрез это точно!

Спасибо за помощь заранее!

Последний раз редактировалось rpy3uH; 29.05.2011 в 19:01.
Vanya-tim вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кодирование Михаил93 Помощь студентам 5 27.02.2011 01:49
Кодирование asil Помощь студентам 1 02.05.2009 20:48
Кодирование. Blizzz Общие вопросы Delphi 5 19.01.2009 18:28
Кодирование Mss_Smith Помощь студентам 3 17.04.2007 14:46