MOV A,E
SUB L
RET
CODING:
;SUBROUTINE
CMA
RET
;
KONSUM: ;SUBROUTINE
;
;
RET
;
END
2. ПОСЛЕДОВАТЕЛЬНОСТЬ ИСПОЛНЕНИЯ И ПОИСКА ОШИБОК ВАРИАНТА L2_00.A85
2.1. ВАРИАНТЫ ДЛЯ САМОСТОЯТЕЛЬНОГО ПОИСКА И ИСПРАВЛЕНИЯ ОШИБОК
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-1
DB 0
SEG DATA1
BUF2: DS TEXTSIZE-1
DB О; не О, а 0 иначе буфер 2 не очистится перед началом работы
SEG DATA1
BUF3: DS TEXTSIZE
DB 0
; 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 EXAPLES
MASK11 EQU 00000011B ;
MASK12 EQU 01010000В ;
;MACROCOMMAND
INIT1 %MACRO BU,SIM,SZ
%LOCAL LOOP_INIT
LXI H,BU
MVI B,SZ
LOOP_INIT:
MVI M,SIM
INR H; не INR , а INX
DCR B
JNZ LOOP_INIT
%ENDM
SEG IOSPACE,START=0
CS8155 DS 1 ; COMMAND/STATUS REG OF 8155 IN I/O SPACE
PA8155 DS 1 ; PORT A OF 8155 IN I/O SPACE
PB8155 DS 1
PC8155 DS 1 ; PORT C OF 8155 IN I/O SPACE
TL8155 DS 1 ; TIMER LOW PART OF 8155 IN I/O SPACE
TH8155 DS 1 ; TIMER HIGH PART OF 8155 IN I/O SPACE
DEFSEG PA8355SEG,START=8,CLASS=IOSPACE
SEG PA8355SEG
PA8355 DS 1 ; PORT A OF 8355 IN I/O SPACE
PB8355 DS 1 ; PORT B OF 8355 IN I/O SPACE
DA8355 DS 1 ; DDR OF PORT A OF 8355 IN I/O SPACE
DB8355 DS 1 ; DDR OF PORT B OF 8355 IN I/O SPACE
;
;PROGRAMM
SEG CODE,CLASS=CODE,START=ROM
;
PROG: LXI SP,STPOINT
MVI A,0 ;ALL INPUT
OUT DB8355
DCR A
OUT DB8355 ;ALL OUTPUT
INIT1 STACKR,'.',STACKSIZE
INIT1 BUF1,'1',TEXTSIZE-1
INIT1 BUF2,'2',TEXTSIZE-1
INIT1 BUF3,'3',TEXTSIZE-1
;
; MAIN
;
; INPUT TO PORT A 8355
LXI H,BUF1
LXI D,BUF1+TEXTSIZE-1
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 LOOP1N; не LOOP1N, а LOOP1
ENDTEXT:
STAX D; не STAXD,аLDAXD
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
DEQH:
;
ПП выполняет сравнение (вычитание) E-L,
; если байты не равны, то выход,
; иначе продолжение сравнений D-H.
; выход: Z=0, если DE = HL,
; Z=0, если DE <> HL
;
MOV A,D
SUB H
RNZ
MOV A,E
SUB L
RET
CODING:
;SUBROUTINE
CMA
RET
;
KONSUM: ;SUBROUTINE
RET
; END
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.