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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

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

Привет!

Помогите, пожалуйста, решить задачу на 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

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

Спасибо за помощь заранее!
Vanya-tim вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Assembler 8086. Задача. hydr0 Фриланс 2 01.05.2011 10:57
задача на Assembler Евген101 Помощь студентам 2 01.10.2010 11:48
задача по assembler zabava Помощь студентам 2 13.09.2008 16:44
Задача Assembler (матрица) LeFF Помощь студентам 2 22.06.2008 13:38
Задача на Assembler-е (строки) rullzzzz Помощь студентам 1 16.06.2008 12:27