| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm для начинающих > как? кодирование-дек. АП с записью в буфер. |
| Автор: vanyatim 29.5.2011, 14:46 |
| Привет! Помогите, пожалуйста, решить задачу на 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 То, что сделал я упорно не работает. Если даже и кодирует, то в буфер писать отказывается на отрез это точно! Спасибо за помощь заранее! |