# HG changeset patch # User james # Date 1397663499 -3600 # Node ID 4411dee340851b4e52feb1e30307d263d9436543 # Parent 02241452f3976cc399d01e35a23e1551833ed3fb cleaned out docs (don't worry they are comming back) and added all my test files diff -r 02241452f397 -r 4411dee34085 asm/asm.py --- a/asm/asm.py Tue Apr 15 15:49:16 2014 +0100 +++ b/asm/asm.py Wed Apr 16 16:51:39 2014 +0100 @@ -69,7 +69,7 @@ # labels can be used in equates but they have # to be assigned before they are used as well elif s in labels: - if statement[0] in rinst: + if statement[0].lower() in rinst: statement[i] = prefix + str(labels[s] - pc) + suffix else: statement[i] = prefix + str(labels[s]) + suffix @@ -137,7 +137,7 @@ # check if it's an org or db command deal with it accordingly # check if arguments are labels and replace with value # write instruction to file -def second_pass(f, asm, labels): +def second_pass(f, asm, labels, d=None): pc = 0 for line in asm: @@ -194,22 +194,41 @@ else: raise ValueError f.write(const) + + # write debug file + if d != None: + if len(const) == 0: + uconst = ' ' + elif len(const) == 2: + uconst = hex(struct.unpack('>H', const)[0]) + else: + if mne in rinst: + fmt = '>b' + else: + fmt = '>B' + uconst = hex(struct.unpack(fmt, const)[0]) + argstr = ', '.join(args) + d.write(hex(pc) + '\t' + hex(op) + '\t' + uconst + '\t' + mne + '\t' + argstr + '\n'); + pc = pc + width except: print '** second pass error **\nline:\n', line raise - return f + return f, d if __name__ == '__main__': f = open(sys.argv[1], 'r') try: b = open(sys.argv[2], 'wb') + d = open(sys.argv[2] + '.dsm', 'w') except IndexError: b = open('a.out', 'wb') + d = open('a.dsm', 'wb') asm, labels = first_pass(f) - b = second_pass(b, asm, labels) + b, d= second_pass(b, asm, labels, d) f.close() b.close() + d.close() diff -r 02241452f397 -r 4411dee34085 asm/asm.pyc Binary file asm/asm.pyc has changed diff -r 02241452f397 -r 4411dee34085 asm/language.pyc Binary file asm/language.pyc has changed diff -r 02241452f397 -r 4411dee34085 bin/emu Binary file bin/emu has changed diff -r 02241452f397 -r 4411dee34085 build.sh --- a/build.sh Tue Apr 15 15:49:16 2014 +0100 +++ b/build.sh Wed Apr 16 16:51:39 2014 +0100 @@ -1,7 +1,5 @@ #!/bin/bash +# build PC emu and make sure old build is dead gcc -std=c89 emu/main.c emu/mem.c emu/iset.c -o bin/emu killall emu; rm out; - -#cd dbg/ -#ipython -i dbg.py diff -r 02241452f397 -r 4411dee34085 cli.py --- a/cli.py Tue Apr 15 15:49:16 2014 +0100 +++ b/cli.py Wed Apr 16 16:51:39 2014 +0100 @@ -10,6 +10,11 @@ from asm import asm from dbg import dbg +# start emu instance +emu = dbg.controller() +emu.Emu = Popen(['bin/emu'], stdout=PIPE, stdin=PIPE, stderr=PIPE) + +# symbol encodings syms = { 'R0_0':0, 'R1_0':1, @@ -37,9 +42,22 @@ 'C':7 } -emu = dbg.controller() -emu.Emu = Popen(['bin/emu'], stdout=PIPE, stdin=PIPE, stderr=PIPE) - +# command line command strings +cmds = { + 'step':emu.step, + 'run':emu.run, + 'runl':emu.run_len, + 'gr':emu.get_reg, + 'sr':emu.set_reg, + 'gf':emu.get_flag, + 'sf':emu.set_flag, + 'gb':emu.get_block, + 'sb':emu.set_block, + 'ga':emu.get_a, + 'gfs':emu.get_flags, + 'gi':emu.get_ir, + 'sbp':emu.set_bp + } # assemble and execute inline asm. # bytecode is copied to where ever the PC is and then executed @@ -55,8 +73,8 @@ pcl = struct.unpack('>B', emu.get_reg(syms['PCL']))[0] # get user input - c = raw_input() - if c == 'exit': + c = raw_input('>> ') + if c == 'end': break code.write(c) @@ -66,75 +84,68 @@ if l.keys() != []: print 'labels not yet supported in interpreter mode' continue - bytecode = asm.second_pass(bytecode, a, l) + bytecode, d = asm.second_pass(bytecode, a, l) bytecode.seek(0) byte_array = bytearray(bytecode.read()) except: print 'invalid instruction' continue - print 'PC -> ', hex(pcl | (pch << 8)), [hex(b) for b in byte_array] + print 'PC:', hex(pcl | (pch << 8)),'BC:', [hex(b) for b in byte_array] # write to emu memory and execute emu.set_block(pch, pcl, byte_array) emu.step() -cmds = { - 'step':emu.step, - 'run':emu.run, - 'gr':emu.get_reg, - 'sr':emu.set_reg, - 'gf':emu.get_flag, - 'sf':emu.set_flag, - 'gb':emu.get_block, - 'sb':emu.set_block, - 'ga':emu.get_a, - 'gfs':emu.get_flags, - 'gir':emu.get_ir, - } + +# request input and run command +def req_run(): + inp = raw_input('> ').split() + if inp == []: + return + cmd = inp[0] + args = [] + + try: + if cmd == 'exit': + emu.Emu.kill() + exit() + # deal with inline execution independently + if cmd == 'exc': + exc() + return + + # set block has unique argument syntax + if cmd == 'sb': + args.append(int(inp[1], 0)) + args.append(int(inp[2], 0)) + args.append([int(x, 0) for x in inp[3:]]) + cmds[cmd](*args) + return + + # decode args + i = 0 + for word in inp[1:]: + if word in syms.keys(): + args.append(syms[word]) + # only arguments after 3 will be data for set block + # this needs to be in a list + else: + args.append(int(word, 0)) + i = i + 1 + + resp = cmds[cmd](*args) + if resp == None: + return + else: + print [hex(struct.unpack('>B', x)[0]) for x in resp] + + except Exception, e: + print e + print 'invalid command or argument syntax' + return + if __name__ == '__main__': - while True: - - inp = raw_input('> ').split() - if inp == []: - continue - cmd = inp[0] - args = [] - - try: - # deal with inline execution independently - if cmd == 'exc': - exc() - continue + req_run() - # set block has unique argument syntax - if cmd == 'sb': - args.append(int(inp[1], 0)) - args.append(int(inp[2], 0)) - args.append([int(x, 0) for x in inp[3:]]) - cmds[cmd](*args) - continue - - # decode args - i = 0 - for word in inp[1:]: - if word in syms.keys(): - args.append(syms[word]) - # only arguments after 3 will be data for set block - # this needs to be in a list - else: - args.append(int(word, 0)) - i = i + 1 - - resp = cmds[cmd](*args) - if resp == None: - continue - else: - print [hex(struct.unpack('>B', x)[0]) for x in resp] - - except Exception, e: - print e - print 'invalid command or argument syntax' - continue - diff -r 02241452f397 -r 4411dee34085 dbg/dbg.py --- a/dbg/dbg.py Tue Apr 15 15:49:16 2014 +0100 +++ b/dbg/dbg.py Wed Apr 16 16:51:39 2014 +0100 @@ -5,13 +5,17 @@ from time import sleep # talks to the emulator -# see dbgi() in emu/main.c for the inverse +# see controller() in emu/main.c for the inverse class controller: def __init__(self): self.Emu = None open('out', 'w').close() + # Alternetive snd and rcv functions need to be + # written read/write using serial buffer to make + # this class talk to an emulator running on + # an MCU def snd(self, m): self.Emu.stdin.write(struct.pack('>B', m)) @@ -19,7 +23,7 @@ lc = 0 while lc != l: lc = os.path.getsize('out') - sleep(0.5) + #sleep(0.5) with open('out', 'r') as f: c = f.read() open('out', 'w').close() @@ -28,10 +32,8 @@ def step(self): self.snd(0x00) - def run(self, lenh, lenl): + def run(self): self.snd(0x01) - snd(lenh) - snd(lenl) def set_reg(self, reg, data): self.snd(0x02) @@ -87,4 +89,21 @@ self.snd(0x0B) return self.rcv(1) + def run_len(self, lenh, lenl): + self.snd(0x0C) + self.snd(lenh) + self.snd(lenl) + def free_run(self): + self.snd(0x0D) + + def set_bp(self, i, addrh, addrl): + self.snd(0x0E) + self.snd(i) + self.snd(addrh) + self.snd(addrl) + + + + + diff -r 02241452f397 -r 4411dee34085 dbg/dbg.pyc Binary file dbg/dbg.pyc has changed diff -r 02241452f397 -r 4411dee34085 dbg/out --- a/dbg/out Tue Apr 15 15:49:16 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ - diff -r 02241452f397 -r 4411dee34085 doc/datasheets/51labboard.pdf Binary file doc/datasheets/51labboard.pdf has changed diff -r 02241452f397 -r 4411dee34085 doc/datasheets/62256.pdf Binary file doc/datasheets/62256.pdf has changed diff -r 02241452f397 -r 4411dee34085 doc/datasheets/ZLG7290_datasheet_english.pdf Binary file doc/datasheets/ZLG7290_datasheet_english.pdf has changed diff -r 02241452f397 -r 4411dee34085 doc/datasheets/ebu5475lab3.pdf Binary file doc/datasheets/ebu5475lab3.pdf has changed diff -r 02241452f397 -r 4411dee34085 doc/general/.~lock.elb816_opcodes.ods# --- a/doc/general/.~lock.elb816_opcodes.ods# Tue Apr 15 15:49:16 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -,jmz,xthUnk,06.04.2014 22:58,file:///home/jmz/.config/libreoffice/4; \ No newline at end of file diff -r 02241452f397 -r 4411dee34085 doc/general/ede.lyx --- a/doc/general/ede.lyx Tue Apr 15 15:49:16 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2081 +0,0 @@ -#LyX 2.0 created this file. For more info see http://www.lyx.org/ -\lyxformat 413 -\begin_document -\begin_header -\textclass article -\use_default_options true -\maintain_unincluded_children false -\language english -\language_package default -\inputencoding auto -\fontencoding global -\font_roman lmodern -\font_sans lmss -\font_typewriter lmtt -\font_default_family sfdefault -\use_non_tex_fonts false -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 - -\graphics default -\default_output_format default -\output_sync 0 -\bibtex_command default -\index_command default -\paperfontsize default -\spacing single -\use_hyperref false -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 1 -\use_mhchem 1 -\use_mathdots 1 -\cite_engine basic -\use_bibtopic false -\use_indices false -\paperorientation portrait -\suppress_date false -\use_refstyle 1 -\index Index -\shortcut idx -\color #008000 -\end_index -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation indent -\paragraph_indentation default -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\html_math_output 0 -\html_css_as_file 0 -\html_be_strict false -\end_header - -\begin_body - -\begin_layout Title -EDE: ELB816 Development Environment -\end_layout - -\begin_layout Author -James Bowden (110104485) -\end_layout - -\begin_layout Abstract -The ELB816 Development Environment consists of an assembler, emulator and - debugger for the ELB816 microprocessor system. - This report details the design and usage of each of its elements. -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset CommandInset toc -LatexCommand tableofcontents - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Part -Introduction and Specification -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -Motivations -\end_layout - -\begin_layout Standard -The ELB816 architecture is designed to be a -\begin_inset Quotes eld -\end_inset - -simple to understand 8-bit microprocessor system to help learn about microproces -sor electronics. -\begin_inset Quotes erd -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The combination of an ELB816 emulator, debugger and assembler could be used - as a set of tools for learning or teaching microprocessor programming without - the intricacies of real-world commercial microprocessors getting in the - way of a fundamental understanding of the subject. -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -A PC based emulator would allow students to quickly develop and debug programs - written in a simple assembly language on any modern desktop or laptop and - an MCS-51 port running on an 8052 would allow students to test programs - in an actual circuit. -\end_layout - -\begin_layout Section -Project Aims -\end_layout - -\begin_layout Itemize -Develop an assembler for the ELB816 assembly language. -\end_layout - -\begin_layout Itemize -Develop an emulated programmable microprocessor system based on the ELB816 - architecture. -\end_layout - -\begin_layout Itemize -Develop a debugger that allows interactive debugging of programs running - on the emulator. -\end_layout - -\begin_layout Section -Methodology -\end_layout - -\begin_layout Subsection -Assembler -\end_layout - -\begin_layout Description -Language: Python -\end_layout - -\begin_layout Description -Priority: First -\end_layout - -\begin_layout Standard -The assembler will be developed before anything else so that it can subsequently - be used to assemble test programs during development of the emulator. - -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Subsection -Emulator -\end_layout - -\begin_layout Description -Language: C -\end_layout - -\begin_layout Description -Priority: Second -\end_layout - -\begin_layout Standard -The emulator will use only standard libraries in order to ensure it is portable - between compilers and platforms. - Specifically GCC for x86 and Keil C51 for Intel MCS-51. - The emulator will first be developed on Linux to facilitated rapid development. - It will be ported to MCS-51 once it is complete -\end_layout - -\begin_layout Subsection -Debugger -\end_layout - -\begin_layout Description -Language: C/Python -\end_layout - -\begin_layout Description -Priority: Second -\end_layout - -\begin_layout Standard -The debug interface will be developed along side the emulator. - It will consist of a simple text based interface built into the emulator - that will read commands using C's -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -stdio.h -\end_layout - -\end_inset - - library. - This means that on Linux the commands will be issued using -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -STDIN -\end_layout - -\end_inset - - and on the MCS-51 version they will be issued over a serial interface. - Python will be used to provide a cleaner interface for common debug procedures - such as writing programs to memory and setting break-points. - -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The remainder of this report is split into three parts, one for each component - of the project, and will attempt to demonstrate the design and usage of - each of these components. - -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Part -Assembler -\end_layout - -\begin_layout Section -Assembler Overview -\end_layout - -\begin_layout Section -Assembler Implementation -\end_layout - -\begin_layout Standard -The assembler is written in pure Python 2 using only the standard library. - It assembles the assembly the language described in the ELB816 specification - with a few minor differences. - These differences are: -\end_layout - -\begin_layout Itemize -In-line arithmetic must be wrapped in curved brackets eg. - start with '(' and end with ')'. - This is a limitation of the design of the program and to change it would - require a large amount of code to be re-written. -\end_layout - -\begin_layout Itemize -The only directives that have been implemented are -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -ORG -\end_layout - -\end_inset - -, -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -EQU -\end_layout - -\end_inset - -, -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -DB -\end_layout - -\end_inset - - and -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -DS -\end_layout - -\end_inset - -. - The other directives listed in the specification have not been implemented, - but there omission is only due to time constraints and they could easily - be implemented in a later version. -\end_layout - -\begin_layout Itemize -Macros have not been implemented also due to time constraints. -\end_layout - -\begin_layout Standard -The assembler consists of two files: -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -language.py -\end_layout - -\end_inset - - which contains the language definition in an index and some functions to - help encode instructions. -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -assembler.py -\end_layout - -\end_inset - - which contains the first and second pass functions and handles opening - source files and writing binary files. -\end_layout - -\begin_layout Standard -The following sections details the design and behavior of the assembler. - However it must be noted that these are abstract and high level descriptions - that do not fully explain minor routines, but give an overview of the entire - process. - The full commented source code is attached provided with the supporting - and should be referenced for a deeper understanding of the program's operation. - The final section is a short programmers manual demonstrating the assembler's - features. -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Subsection -Data Structures -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -reserved arguments -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This structure contains a list of string representations of the reserved - word arguments for the instruction set. - These all equate to registers or register pointers. - The full list is as follows: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "basicstyle={\ttfamily},captionpos=b,frame=tb,framexbottommargin=1em,framextopmargin=1em,keywordstyle={\color{blue}},tabsize=4" -inline false -status open - -\begin_layout Plain Layout - -a, c, bs, ie, flags, -\end_layout - -\begin_layout Plain Layout - -r0, r1, r2, r3, -\end_layout - -\begin_layout Plain Layout - -dptr, dpl, dph, -\end_layout - -\begin_layout Plain Layout - -sp, sph, spl, -\end_layout - -\begin_layout Plain Layout - -@a+pc, @a+dptr, @dptr -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -relative instructions -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This structure contains a list of string representations of the mnemonics - of instructions that use relative addressing. - The full list is as follows: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "basicstyle={\ttfamily},captionpos=b,frame=tb,framexbottommargin=1em,framextopmargin=1em,keywordstyle={\color{blue}},tabsize=4" -inline false -status open - -\begin_layout Plain Layout - -djnz, cjne, sjmp, jz, -\end_layout - -\begin_layout Plain Layout - -jnz, jc, jnc, jpo, -\end_layout - -\begin_layout Plain Layout - -jpe, js, jns -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -instruction index -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This structure contains an index of all possible instructions in the instruction - set, along with the the corresponding opcode and instruction width. - This is implemented using a combination of Python's dictionary, tuple and - list objects. - Its structure is demonstrated below: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "basicstyle={\ttfamily},captionpos=b,frame=tb,framexbottommargin=1em,framextopmargin=1em,keywordstyle={\color{blue}},tabsize=4" -inline false -status open - -\begin_layout Plain Layout - -mnemonic: (arg type, arg type, ...): [opcode, width] -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Each mnemonic has an entry in the parent index which returns another index - of possible argument formats for that mnemonic with their corresponding - opcode and length. - Argument types can be either be one of the reserved arguments or one of - the following values: -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -address -\end_layout - -\end_inset - -, -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -pointer -\end_layout - -\end_inset - -, -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -data -\end_layout - -\end_inset - - or -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -label -\end_layout - -\end_inset - - . - Width is represented in number of bytes, ie. - -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -width = 3 -\end_layout - -\end_inset - - means 1 byte of opcode and 2 bytes of arguments. -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -label index -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This structure is used to store an index of label definitions. -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -equate index -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This structure is used to store an index of equated strings. -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Subsection -Functions -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -first_pass(source file) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This function pre-processes a source file and stores it in a format containing - the necessary data for the -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -second_pass() -\end_layout - -\end_inset - - function to assemble it. - It processes labels and -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -EQU -\end_layout - -\end_inset - - directives by storing strings and their corresponding values in indexes - and replacing any subsequent appearances of the string with the value. - It prepares -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -ORG -\end_layout - -\end_inset - - and -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -DB -\end_layout - -\end_inset - - statements for the -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -second_pass() -\end_layout - -\end_inset - -. - It uses the -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -tokenize() -\end_layout - -\end_inset - - function to determine the argument symbols and operand bit string. - Finally it uses the -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -instruction index -\end_layout - -\end_inset - - to determine the instruction width. -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -second_pass(asm, label index) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This function takes the pre-processed assembly code and -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -label index -\end_layout - -\end_inset - - output by -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -first_pass() -\end_layout - -\end_inset - - as input. - First it checks for -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -ORG -\end_layout - -\end_inset - - and -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -DB -\end_layout - -\end_inset - - statements and handles them if necessary. - Then it replaces any labels that were used before they were defined and - therefore not replaced on by -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -first_pass() -\end_layout - -\end_inset - - . - It uses the -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -instruction index -\end_layout - -\end_inset - - to determine the opcode and the width of the instruction, then it writes - the opcode and operand to the file. - If the combined width of the opcode and operand is greater than the instruction - width the function raises an error. - -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -tokenize(mnemonic, arguments) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This function processes an instruction in order to produce a hashable symbol - that represents the format of its arguments. - This symbol is used to look up opcodes in the -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -instruction index -\end_layout - -\end_inset - -. - It also detects string representations of numbers in the arguments and - stores a C type struct representation of the operands to be returned along - with the symbol. - It does this with the help of the -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -stoi() -\end_layout - -\end_inset - - function and Python's -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -struct -\end_layout - -\end_inset - - module . -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -stoi(string) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This function is a general purpose function that is actually used throughout - the code, although mainly in the -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -tokenize() -\end_layout - -\end_inset - - function. - It takes a string as an input and tries to convert it to an integer using - Pythons integer representation syntax. - It can recognize decimal, octal, hexadecimal and binary numbers which are - denoted with different prefixes. - If it receives a string it can not represent as an integer it returns the - string 'NaN', (Not a Number) -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Below is an abstract representation of each functions logical process. - The -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -first_pass() -\end_layout - -\end_inset - - and -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -second_pass() -\end_layout - -\end_inset - - are represented in pseudo-code, however -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -stoi() -\end_layout - -\end_inset - - and -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -tokenize() -\end_layout - -\end_inset - - are more easily understood when represented as flowcharts. - -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Subsubsection -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -first_pass -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "basicstyle={\small\ttfamily},captionpos=b,frame=tb,framexbottommargin=3em,framextopmargin=3em,keywordstyle={\color{blue}},language=Python,showstringspaces=false,tabsize=4" -inline false -status open - -\begin_layout Plain Layout - -first_pass(source file): -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - address = 0 -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - for statement in source file: -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - remove comments -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - for word in statement: -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - if word is in equate index: -\end_layout - -\begin_layout Plain Layout - - replace word with equated value -\end_layout - -\begin_layout Plain Layout - - else if word is in label index: -\end_layout - -\begin_layout Plain Layout - - replace word with address at label -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - if first word == 'org' -\end_layout - -\begin_layout Plain Layout - - address = second word -\end_layout - -\begin_layout Plain Layout - - else if last character of first word == ':': -\end_layout - -\begin_layout Plain Layout - - remove ':' -\end_layout - -\begin_layout Plain Layout - - add word = address to label index -\end_layout - -\begin_layout Plain Layout - - next statement -\end_layout - -\begin_layout Plain Layout - - else if second word == 'equ' -\end_layout - -\begin_layout Plain Layout - - add first word = third word to equate index -\end_layout - -\begin_layout Plain Layout - - next statement -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - mnemonic = first word -\end_layout - -\begin_layout Plain Layout - - arguments = [second word ... - last word] -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - symbol, constant = tokenize(arguments) -\end_layout - -\begin_layout Plain Layout - - if mnemonic == 'db': -\end_layout - -\begin_layout Plain Layout - - address = address + width of constant -\end_layout - -\begin_layout Plain Layout - - next statement -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - width = instruction index[mnemonic][symbol][width] -\end_layout - -\begin_layout Plain Layout - - address = address + width -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - append [mnemonic, argument, symbol, constant] to asm -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - return asm, label index -\end_layout - -\end_inset - - -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Subsubsection -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -second_pass -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "basicstyle={\small\ttfamily},breaklines=true,captionpos=b,frame=tb,framexbottommargin=3em,framextopmargin=3em,keywordstyle={\color{blue}},language=Python,tabsize=4" -inline false -status open - -\begin_layout Plain Layout - -second_pass(file, asm, label index): -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - address = 0 -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - for line in asm: -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - file offset = address -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - mnemonic, arguments, symbol, constant = line -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - if mnemonic == 'org': -\end_layout - -\begin_layout Plain Layout - - address = first argument -\end_layout - -\begin_layout Plain Layout - - next line -\end_layout - -\begin_layout Plain Layout - - else if mnemonic == 'db': -\end_layout - -\begin_layout Plain Layout - - write constant to file -\end_layout - -\begin_layout Plain Layout - - address = address + width of constant -\end_layout - -\begin_layout Plain Layout - - next line -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - for argument in arguments: -\end_layout - -\begin_layout Plain Layout - - if argument is a label: -\end_layout - -\begin_layout Plain Layout - - replace argument with address at label -\end_layout - -\begin_layout Plain Layout - - symbol, data = tokenize(argument) -\end_layout - -\begin_layout Plain Layout - - append data to constant -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - op, width = instruction index[mnemonic][symbol] -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - write op to file -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - if width of constant - width + 1 > 0: -\end_layout - -\begin_layout Plain Layout - - raise error -\end_layout - -\begin_layout Plain Layout - - else if: -\end_layout - -\begin_layout Plain Layout - - write constant to file -\end_layout - -\begin_layout Plain Layout - - address = address.+ width -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - return file -\end_layout - -\end_inset - - -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Subsubsection -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -tokenize -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Graphics - filename /home/jmz/qm/ede/doc/images/assembler/tokenize.svg - scale 57 - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Subsubsection -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -stoi -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Description -\begin_inset Graphics - filename /home/jmz/qm/ede/doc/images/assembler/stoi.svg - scale 70 - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Part -Emulator -\end_layout - -\begin_layout Section -Emulator Overview -\end_layout - -\begin_layout Section -Core microprocessor implementation -\end_layout - -\begin_layout Standard -The core of the emulator is written in C89 using only standard libraries. - It executes the machine code output by the assembler according to the ELB816 - specification. - It consists of the following files: -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -iset.c -\end_layout - -\end_inset - - and -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -iset.h -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -These files contain the emulator instruction functions and function look-up - table. -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -mem.c -\end_layout - -\end_inset - - and -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -mem.h -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -These files contain the emulators memory structure and memory access functions. -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -main.c -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This file contains the program's -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -main() -\end_layout - -\end_inset - - function. - It initializes the emulator and executes the programs fetch/decode/execute - cycle. - It also contains the programs -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -dbgi() -\end_layout - -\end_inset - - function, which deals with emulator control and communication. -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Below is a high level description of the content of each of these files - which should demonstrate how the emulator works. - There is also a large amount of material relevant to the emulator's design - in the appendix, which will be referenced when applicable. -\end_layout - -\begin_layout Subsection -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -iset.c -\end_layout - -\end_inset - - and -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -iset.h -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Each mnemonic in the ELB816 instruction set has a function defined in these - files. - Each function is responsible for execution of all the instructions that - use its corresponding mnemonic. - The function look-up table is an array of pointers to these functions, - where a pointer's position in the list corresponds to the opcode of the - instruction to be executed. -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Subsection -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -mem.c -\end_layout - -\end_inset - - and -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -mem.h -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -mem.h -\end_layout - -\end_inset - - header file describes the emulators internal memory structure and makes - this structure available the rest the code. -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -mem.c -\end_layout - -\end_inset - - contains functions that can be used to access this memory from the rest - of the code. -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Subsection -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -main.c -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This file contains the emulator's set-up and control procedures. - It includes all of the projects header files and controls the execution - of the functions contained in them. -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -It first executes a number of initialization procedures and then passes - control over to the main fetch/decode/execute cycle. - Every cycle it calls the -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -dbgi() -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Section -Peripheral Design -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\end_body -\end_document diff -r 02241452f397 -r 4411dee34085 doc/general/ede.lyx~ --- a/doc/general/ede.lyx~ Tue Apr 15 15:49:16 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2089 +0,0 @@ -#LyX 2.0 created this file. For more info see http://www.lyx.org/ -\lyxformat 413 -\begin_document -\begin_header -\textclass article -\use_default_options true -\maintain_unincluded_children false -\language english -\language_package default -\inputencoding auto -\fontencoding global -\font_roman lmodern -\font_sans lmss -\font_typewriter lmtt -\font_default_family sfdefault -\use_non_tex_fonts false -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 - -\graphics default -\default_output_format default -\output_sync 0 -\bibtex_command default -\index_command default -\paperfontsize default -\spacing single -\use_hyperref false -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 1 -\use_mhchem 1 -\use_mathdots 1 -\cite_engine basic -\use_bibtopic false -\use_indices false -\paperorientation portrait -\suppress_date false -\use_refstyle 1 -\index Index -\shortcut idx -\color #008000 -\end_index -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation indent -\paragraph_indentation default -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\html_math_output 0 -\html_css_as_file 0 -\html_be_strict false -\end_header - -\begin_body - -\begin_layout Title -EDE: ELB816 Development Environment -\end_layout - -\begin_layout Author -James Bowden (110104485) -\end_layout - -\begin_layout Abstract -The ELB816 Development Environment consists of an assembler, emulator and - debugger for the ELB816 microprocessor system. - This report details the design and usage of each of its elements. -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset CommandInset toc -LatexCommand tableofcontents - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Part -Introduction and Specification -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -Motivations -\end_layout - -\begin_layout Standard -The ELB816 architecture is designed to be a -\begin_inset Quotes eld -\end_inset - -simple to understand 8-bit microprocessor system to help learn about microproces -sor electronics. -\begin_inset Quotes erd -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The combination of an ELB816 emulator, debugger and assembler could be used - as a set of tools for learning or teaching microprocessor programming without - the intricacies of real-world commercial microprocessors getting in the - way of a fundamental understanding of the subject. -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -A PC based emulator would allow students to quickly develop and debug programs - written in a simple assembly language on any modern desktop or laptop and - an MCS-51 port running on an 8052 would allow students to test programs - in an actual circuit. -\end_layout - -\begin_layout Section -Project Aims -\end_layout - -\begin_layout Itemize -Develop an assembler for the ELB816 assembly language. -\end_layout - -\begin_layout Itemize -Develop an emulated programmable microprocessor system based on the ELB816 - architecture. -\end_layout - -\begin_layout Itemize -Develop a debugger that allows interactive debugging of programs running - on the emulator. -\end_layout - -\begin_layout Section -Methodology -\end_layout - -\begin_layout Subsection -Assembler -\end_layout - -\begin_layout Description -Language: Python -\end_layout - -\begin_layout Description -Priority: First -\end_layout - -\begin_layout Standard -The assembler will be developed before anything else so that it can subsequently - be used to assemble test programs during development of the emulator. - -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Subsection -Emulator -\end_layout - -\begin_layout Description -Language: C -\end_layout - -\begin_layout Description -Priority: Second -\end_layout - -\begin_layout Standard -The emulator will use only standard libraries in order to ensure it is portable - between compilers and platforms. - Specifically GCC for x86 and Keil C51 for Intel MCS-51. - The emulator will first be developed on Linux to facilitated rapid development. - It will be ported to MCS-51 once it is complete -\end_layout - -\begin_layout Subsection -Debugger -\end_layout - -\begin_layout Description -Language: C/Python -\end_layout - -\begin_layout Description -Priority: Second -\end_layout - -\begin_layout Standard -The debug interface will be developed along side the emulator. - It will consist of a simple text based interface built into the emulator - that will read commands using C's -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -stdio.h -\end_layout - -\end_inset - - library. - This means that on Linux the commands will be issued using -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -STDIN -\end_layout - -\end_inset - - and on the MCS-51 version they will be issued over a serial interface. - Python will be used to provide a cleaner interface for common debug procedures - such as writing programs to memory and setting break-points. - -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The remainder of this report is split into three parts, one for each component - of the project, and will attempt to demonstrate the design and usage of - each of these components. - -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Part -Assembler -\end_layout - -\begin_layout Standard -The assembler is written in pure Python 2 using only the standard library. - It assembles the assembly the language described in the ELB816 specification - with a few minor differences. - These differences are: -\end_layout - -\begin_layout Itemize -In-line arithmetic must be wrapped in curved brackets eg. - start with '(' and end with ')'. - This is a limitation of the design of the program and to change it would - require a large amount of code to be re-written. -\end_layout - -\begin_layout Itemize -The only directives that have been implemented are -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -ORG -\end_layout - -\end_inset - -, -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -EQU -\end_layout - -\end_inset - -, -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -DB -\end_layout - -\end_inset - - and -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -DS -\end_layout - -\end_inset - -. - The other directives listed in the specification have not been implemented, - but there omission is only due to time constraints and they could easily - be implemented in a later version. -\end_layout - -\begin_layout Itemize -Macros have not been implemented also due to time constraints. -\end_layout - -\begin_layout Standard -The assembler consists of two files: -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -language.py -\end_layout - -\end_inset - - which contains the language definition in an index and some functions to - help encode instructions. -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -assembler.py -\end_layout - -\end_inset - - which contains the first and second pass functions and handles opening - source files and writing binary files. -\end_layout - -\begin_layout Standard -The following sections details the design and behavior of the assembler. - However it must be noted that these are abstract and high level descriptions - that do not fully explain minor routines, but give an overview of the entire - process. - The full source code is attached in the Appendix and should be referenced - for a deeper understanding of the program's operation. - The final section is a short programmers manual demonstrating the assembler's - features. -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Section -Data Structures -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -reserved arguments -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This structure contains a list of string representations of the reserved - word arguments for the instruction set. - These all equate to registers or register pointers. - The full list is as follows: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "basicstyle={\ttfamily},captionpos=b,frame=tb,framexbottommargin=1em,framextopmargin=1em,keywordstyle={\color{blue}},tabsize=4" -inline false -status open - -\begin_layout Plain Layout - -a, c, bs, ie, flags, -\end_layout - -\begin_layout Plain Layout - -r0, r1, r2, r3, -\end_layout - -\begin_layout Plain Layout - -dptr, dpl, dph, -\end_layout - -\begin_layout Plain Layout - -sp, sph, spl, -\end_layout - -\begin_layout Plain Layout - -@a+pc, @a+dptr, @dptr -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -relative instructions -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This structure contains a list of string representations of the mnemonics - of instructions that use relative addressing. - The full list is as follows: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "basicstyle={\ttfamily},captionpos=b,frame=tb,framexbottommargin=1em,framextopmargin=1em,keywordstyle={\color{blue}},tabsize=4" -inline false -status open - -\begin_layout Plain Layout - -djnz, cjne, sjmp, jz, -\end_layout - -\begin_layout Plain Layout - -jnz, jc, jnc, jpo, -\end_layout - -\begin_layout Plain Layout - -jpe, js, jns -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -instruction index -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This structure contains an index of all possible instructions in the instruction - set, along with the the corresponding opcode and instruction width. - This is implemented using a combination of Python's dictionary, tuple and - list objects. - Its structure is demonstrated below: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "basicstyle={\ttfamily},captionpos=b,frame=tb,framexbottommargin=1em,framextopmargin=1em,keywordstyle={\color{blue}},tabsize=4" -inline false -status open - -\begin_layout Plain Layout - -mnemonic: (arg type, arg type, ...): [opcode, width] -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Each mnemonic has an entry in the parent index which returns another index - of possible argument formats for that mnemonic with their corresponding - opcode and length. - Argument types can be either be one of the reserved arguments or one of - the following values: -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -address -\end_layout - -\end_inset - -, -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -pointer -\end_layout - -\end_inset - -, -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -data -\end_layout - -\end_inset - - or -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -label -\end_layout - -\end_inset - - . - Width is represented in number of bytes, ie. - -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -width = 3 -\end_layout - -\end_inset - - means 1 byte of opcode and 2 bytes of arguments. -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -label index -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This structure is used to store an index of label definitions. -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -equate index -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This structure is used to store an index of equated strings. -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Section -Functions -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -first_pass(source file) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This function pre-processes a source file and stores it in a format containing - the necessary data for the -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -second_pass() -\end_layout - -\end_inset - - function to assemble it. - It processes labels and -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -EQU -\end_layout - -\end_inset - - directives by storing strings and their corresponding values in indexes - and replacing any subsequent appearances of the string with the value. - It prepares -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -ORG -\end_layout - -\end_inset - - and -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -DB -\end_layout - -\end_inset - - statements for the -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -second_pass() -\end_layout - -\end_inset - -. - It uses the -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -tokenize() -\end_layout - -\end_inset - - function to determine the argument symbols and operand bit string. - Finally it uses the -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -instruction index -\end_layout - -\end_inset - - to determine the instruction width. -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -second_pass(asm, label index) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This function takes the pre-processed assembly code and -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -label index -\end_layout - -\end_inset - - output by -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -first_pass() -\end_layout - -\end_inset - - as input. - First it checks for -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -ORG -\end_layout - -\end_inset - - and -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -DB -\end_layout - -\end_inset - - statements and handles them if necessary. - Then it replaces any labels that were used before they were defined and - therefore not replaced on by -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -first_pass() -\end_layout - -\end_inset - - . - It uses the -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -instruction index -\end_layout - -\end_inset - - to determine the opcode and the width of the instruction, then it writes - the opcode and operand to the file. - If the combined width of the opcode and operand is greater than the instruction - width the function raises an error. - -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -tokenize(mnemonic, arguments) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This function processes an instruction in order to produce a hashable symbol - that represents the format of its arguments. - This symbol is used to look up opcodes in the -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -instruction index -\end_layout - -\end_inset - -. - It also detects string representations of numbers in the arguments and - stores a C type struct representation of the operands to be returned along - with the symbol. - It does this with the help of the -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -stoi() -\end_layout - -\end_inset - - function and Python's -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -struct -\end_layout - -\end_inset - - module . -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -stoi(string) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This function is a general purpose function that is actually used throughout - the code, although mainly in the -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -tokenize() -\end_layout - -\end_inset - - function. - It takes a string as an input and tries to convert it to an integer using - Pythons integer representation syntax. - It can recognize decimal, octal, hexadecimal and binary numbers which are - denoted with different prefixes. - If it receives a string it can not represent as an integer it returns the - string 'NaN', (Not a Number) -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Below is an abstract representation of each functions logical process. - The -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -first_pass() -\end_layout - -\end_inset - - and -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -second_pass() -\end_layout - -\end_inset - - are represented in pseudo-code, however -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -stoi() -\end_layout - -\end_inset - - and -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -tokenize() -\end_layout - -\end_inset - - are more easily understood when represented as flowcharts. - -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Subsection -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -first_pass -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "basicstyle={\small\ttfamily},captionpos=b,frame=tb,framexbottommargin=3em,framextopmargin=3em,keywordstyle={\color{blue}},language=Python,showstringspaces=false,tabsize=4" -inline false -status open - -\begin_layout Plain Layout - -first_pass(source file): -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - address = 0 -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - for statement in source file: -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - remove comments -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - for word in statement: -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - if word is in equate index: -\end_layout - -\begin_layout Plain Layout - - replace word with equated value -\end_layout - -\begin_layout Plain Layout - - else if word is in label index: -\end_layout - -\begin_layout Plain Layout - - replace word with address at label -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - if first word == 'org' -\end_layout - -\begin_layout Plain Layout - - address = second word -\end_layout - -\begin_layout Plain Layout - - else if last character of first word == ':': -\end_layout - -\begin_layout Plain Layout - - remove ':' -\end_layout - -\begin_layout Plain Layout - - add word = address to label index -\end_layout - -\begin_layout Plain Layout - - next statement -\end_layout - -\begin_layout Plain Layout - - else if second word == 'equ' -\end_layout - -\begin_layout Plain Layout - - add first word = third word to equate index -\end_layout - -\begin_layout Plain Layout - - next statement -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - mnemonic = first word -\end_layout - -\begin_layout Plain Layout - - arguments = [second word ... - last word] -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - symbol, constant = tokenize(arguments) -\end_layout - -\begin_layout Plain Layout - - if mnemonic == 'db': -\end_layout - -\begin_layout Plain Layout - - address = address + width of constant -\end_layout - -\begin_layout Plain Layout - - next statement -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - width = instruction index[mnemonic][symbol][width] -\end_layout - -\begin_layout Plain Layout - - address = address + width -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - append [mnemonic, argument, symbol, constant] to asm -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - return asm, label index -\end_layout - -\end_inset - - -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Subsection -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -second_pass -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "basicstyle={\small\ttfamily},breaklines=true,captionpos=b,frame=tb,framexbottommargin=3em,framextopmargin=3em,keywordstyle={\color{blue}},language=Python,tabsize=4" -inline false -status open - -\begin_layout Plain Layout - -second_pass(file, asm, label index): -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - address = 0 -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - for line in asm: -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - file offset = address -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - mnemonic, arguments, symbol, constant = line -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - if mnemonic == 'org': -\end_layout - -\begin_layout Plain Layout - - address = first argument -\end_layout - -\begin_layout Plain Layout - - next line -\end_layout - -\begin_layout Plain Layout - - else if mnemonic == 'db': -\end_layout - -\begin_layout Plain Layout - - write constant to file -\end_layout - -\begin_layout Plain Layout - - address = address + width of constant -\end_layout - -\begin_layout Plain Layout - - next line -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - for argument in arguments: -\end_layout - -\begin_layout Plain Layout - - if argument is a label: -\end_layout - -\begin_layout Plain Layout - - replace argument with address at label -\end_layout - -\begin_layout Plain Layout - - symbol, data = tokenize(argument) -\end_layout - -\begin_layout Plain Layout - - append data to constant -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - op, width = instruction index[mnemonic][symbol] -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - write op to file -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - if width of constant - width + 1 > 0: -\end_layout - -\begin_layout Plain Layout - - raise error -\end_layout - -\begin_layout Plain Layout - - else if: -\end_layout - -\begin_layout Plain Layout - - write constant to file -\end_layout - -\begin_layout Plain Layout - - address = address.+ width -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - return file -\end_layout - -\end_inset - - -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Subsection -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -tokenize -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Graphics - filename /home/jmz/qm/ede/doc/images/assembler/tokenize.svg - scale 57 - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Subsection -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -stoi -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Description -\begin_inset Graphics - filename /home/jmz/qm/ede/doc/images/assembler/stoi.svg - scale 70 - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Section -Assembly language manual -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Part -Emulator -\end_layout - -\begin_layout Section -Core microprocessor emulation -\end_layout - -\begin_layout Standard -The core of the emulator is written in C using only standard libraries. - It executes the machine code output by the assembler according to the ELB816 - specification. - It consists of the following files: -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -iset.c -\end_layout - -\end_inset - - and -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -iset.h -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -These files contain the emulator instruction functions and function look-up - table. -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -mem.c -\end_layout - -\end_inset - - and -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -mem.h -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -These files contain the emulators memory structure and memory access functions. -\end_layout - -\begin_layout Itemize -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -emu.c -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This file contains the program's -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -main() -\end_layout - -\end_inset - - function. - It initializes the emulator and executes the programs fetch/decode/execute - cycle. - -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Below is a high level description of the content of each of these files - which should demonstrate how the emulator works. - There is also a large amount of material relevant to the emulator's design - in the appendix, which will be referenced when applicable. -\end_layout - -\begin_layout Subsection -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -iset.c -\end_layout - -\end_inset - - and -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -iset.h -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Each mnemonic in the ELB816 instruction set has a function defined in these - files. - Each function is responsible for execution of all the instructions that - use its corresponding mnemonic. - The function look-up table is an array of pointers to these functions, - where a pointer's position in the list corresponds to the opcode of the - instruction to be executed. -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Subsection -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -mem.c -\end_layout - -\end_inset - - and -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -mem.h -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The figures bellow illustrate the emulator's memory layout as defined in - the -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -mem.h -\end_layout - -\end_inset - - header file. -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -mem.c -\end_layout - -\end_inset - - contains functions that can be used to access this memory from the rest - of the code. -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Subsection -\begin_inset listings -lstparams "basicstyle={\ttfamily}" -inline true -status open - -\begin_layout Plain Layout - -emu.c -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -This file contains the emulator's set-up and control procedures. - It includes all of the projects header files and controls the execution - of the functions contained in them. -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -It first executes a number of initialization procedures and then passes - control over to the main fetch/decode/execute cycle. - This procedure is shown below as a flowchart. - To understand this it you must be familiar with C's function pointer syntax. -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -bigskip -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -centerline{ -\end_layout - -\end_inset - - -\begin_inset Graphics - filename /home/jmz/qm/ede/doc/images/emulator/fetch_decode_exe.svg - scale 70 - -\end_inset - - -\begin_inset ERT -status open - -\begin_layout Plain Layout - -} -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\begin_layout Section -Peripherals -\end_layout - -\begin_layout Standard -\begin_inset Newpage newpage -\end_inset - - -\end_layout - -\end_body -\end_document diff -r 02241452f397 -r 4411dee34085 doc/general/ede.pdf Binary file doc/general/ede.pdf has changed diff -r 02241452f397 -r 4411dee34085 doc/general/ede.tex --- a/doc/general/ede.tex Tue Apr 15 15:49:16 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,481 +0,0 @@ -%% LyX 2.0.6 created this file. For more info, see http://www.lyx.org/. -%% Do not edit unless you really know what you are doing. -\documentclass[english]{article} -\usepackage{lmodern} -\renewcommand{\sfdefault}{lmss} -\renewcommand{\ttdefault}{lmtt} -\renewcommand{\familydefault}{\sfdefault} -\usepackage[T1]{fontenc} -\usepackage[utf8]{luainputenc} -\usepackage{listings} -\usepackage{color} -\usepackage{graphicx} - -\makeatletter - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. -%% A simple dot to overcome graphicx limitations -\newcommand{\lyxdot}{.} - - -\makeatother - -\usepackage{babel} -\begin{document} - -\title{EDE: ELB816 Development Environment} - - -\author{James Bowden (110104485)} -\maketitle -\begin{abstract} -The ELB816 Development Environment consists of an assembler, emulator -and debugger for the ELB816 microprocessor system. This report details -the design and usage of each of its elements. -\end{abstract} -\newpage{} - -\tableofcontents{} - -\newpage{} - - -\part{Introduction and Specification} - -\bigskip - - -\section{Motivations} - -The ELB816 architecture is designed to be a ``simple to understand -8-bit microprocessor system to help learn about microprocessor electronics.'' - -\bigskip - -The combination of an ELB816 emulator, debugger and assembler could -be used as a set of tools for learning or teaching microprocessor -programming without the intricacies of real-world commercial microprocessors -getting in the way of a fundamental understanding of the subject. - -\bigskip - -A PC based emulator would allow students to quickly develop and debug -programs written in a simple assembly language on any modern desktop -or laptop and an MCS-51 port running on an 8052 would allow students -to test programs in an actual circuit. - - -\section{Project Aims} -\begin{itemize} -\item Develop an assembler for the ELB816 assembly language. -\item Develop an emulated programmable microprocessor system based on the -ELB816 architecture. -\item Develop a debugger that allows interactive debugging of programs running -on the emulator. -\end{itemize} - -\section{Methodology} - - -\subsection{Assembler} -\begin{description} -\item [{Language:}] Python -\item [{Priority:}] First -\end{description} -The assembler will be developed before anything else so that it can -subsequently be used to assemble test programs during development -of the emulator. - -\newpage{} - - -\subsection{Emulator} -\begin{description} -\item [{Language:}] C -\item [{Priority:}] Second -\end{description} -The emulator will use only standard libraries in order to ensure it -is portable between compilers and platforms. Specifically GCC for -x86 and Keil C51 for Intel MCS-51. The emulator will first be developed -on Linux to facilitated rapid development. It will be ported to MCS-51 -once it is complete - - -\subsection{Debugger} -\begin{description} -\item [{Language:}] C/Python -\item [{Priority:}] Second -\end{description} -The debug interface will be developed along side the emulator. It -will consist of a simple text based interface built into the emulator -that will read commands using C's \lstinline[basicstyle={\ttfamily}]!stdio.h! -library. This means that on Linux the commands will be issued using -\lstinline[basicstyle={\ttfamily}]!STDIN! and on the MCS-51 version -they will be issued over a serial interface. Python will be used to -provide a cleaner interface for common debug procedures such as writing -programs to memory and setting break-points. - -\bigskip - -The remainder of this report is split into three parts, one for each -component of the project, and will attempt to demonstrate the design -and usage of each of these components. - -\newpage{} - - -\part{Assembler} - -The assembler is written in pure Python 2 using only the standard -library. It assembles the assembly the language described in the ELB816 -specification with a few minor differences. These differences are: -\begin{itemize} -\item In-line arithmetic must be wrapped in curved brackets eg. start with -'(' and end with ')'. This is a limitation of the design of the program -and to change it would require a large amount of code to be re-written. -\item The only directives that have been implemented are \lstinline[basicstyle={\ttfamily}]!ORG!, -\lstinline[basicstyle={\ttfamily}]!EQU!, \lstinline[basicstyle={\ttfamily}]!DB! -and \lstinline[basicstyle={\ttfamily}]!DS!. The other directives -listed in the specification have not been implemented, but there omission -is only due to time constraints and they could easily be implemented -in a later version. -\item Macros have not been implemented also due to time constraints. -\end{itemize} -The assembler consists of two files: -\begin{itemize} -\item \lstinline[basicstyle={\ttfamily}]!language.py! which contains the -language definition in an index and some functions to help encode -instructions. -\item \lstinline[basicstyle={\ttfamily}]!assembler.py! which contains the -first and second pass functions and handles opening source files and -writing binary files. -\end{itemize} -The following sections details the design and behavior of the assembler. -However it must be noted that these are abstract and high level descriptions -that do not fully explain minor routines, but give an overview of -the entire process. The full source code is attached in the Appendix -and should be referenced for a deeper understanding of the program's -operation. The final section is a short programmers manual demonstrating -the assembler's features. - -\newpage{} - - -\section{Data Structures} -\begin{itemize} -\item \lstinline[basicstyle={\ttfamily}]!reserved arguments! -\end{itemize} -This structure contains a list of string representations of the reserved -word arguments for the instruction set. These all equate to registers -or register pointers. The full list is as follows: - -\begin{lstlisting}[basicstyle={\ttfamily},captionpos=b,frame=tb,framexbottommargin=1em,framextopmargin=1em,keywordstyle={\color{blue}},tabsize=4] -a, c, bs, ie, flags, -r0, r1, r2, r3, -dptr, dpl, dph, -sp, sph, spl, -@a+pc, @a+dptr, @dptr -\end{lstlisting} - -\begin{itemize} -\item \lstinline[basicstyle={\ttfamily}]!relative instructions! -\end{itemize} -This structure contains a list of string representations of the mnemonics -of instructions that use relative addressing. The full list is as -follows: - -\begin{lstlisting}[basicstyle={\ttfamily},captionpos=b,frame=tb,framexbottommargin=1em,framextopmargin=1em,keywordstyle={\color{blue}},tabsize=4] -djnz, cjne, sjmp, jz, -jnz, jc, jnc, jpo, -jpe, js, jns -\end{lstlisting} - -\begin{itemize} -\item \lstinline[basicstyle={\ttfamily}]!instruction index! -\end{itemize} -This structure contains an index of all possible instructions in the -instruction set, along with the the corresponding opcode and instruction -width. This is implemented using a combination of Python's dictionary, -tuple and list objects. Its structure is demonstrated below: - -\begin{lstlisting}[basicstyle={\ttfamily},captionpos=b,frame=tb,framexbottommargin=1em,framextopmargin=1em,keywordstyle={\color{blue}},tabsize=4] -mnemonic: (arg type, arg type, ...): [opcode, width] -\end{lstlisting} - - -Each mnemonic has an entry in the parent index which returns another -index of possible argument formats for that mnemonic with their corresponding -opcode and length. Argument types can be either be one of the reserved -arguments or one of the following values: \lstinline[basicstyle={\ttfamily}]!address!, -\lstinline[basicstyle={\ttfamily}]!pointer!, \lstinline[basicstyle={\ttfamily}]!data! -or \lstinline[basicstyle={\ttfamily}]!label! . Width is represented -in number of bytes, ie. \lstinline[basicstyle={\ttfamily}]!width = 3! -means 1 byte of opcode and 2 bytes of arguments. -\begin{itemize} -\item \lstinline[basicstyle={\ttfamily}]!label index! -\end{itemize} -This structure is used to store an index of label definitions. -\begin{itemize} -\item \lstinline[basicstyle={\ttfamily}]!equate index! -\end{itemize} -This structure is used to store an index of equated strings. - -\newpage{} - - -\section{Functions} -\begin{itemize} -\item \lstinline[basicstyle={\ttfamily}]!first_pass(source file)! -\end{itemize} -This function pre-processes a source file and stores it in a format -containing the necessary data for the \lstinline[basicstyle={\ttfamily}]!second_pass()! -function to assemble it. It processes labels and \lstinline[basicstyle={\ttfamily}]!EQU! -directives by storing strings and their corresponding values in indexes -and replacing any subsequent appearances of the string with the value. -It prepares \lstinline[basicstyle={\ttfamily}]!ORG! and \lstinline[basicstyle={\ttfamily}]!DB! -statements for the \lstinline[basicstyle={\ttfamily}]!second_pass()!. -It uses the \lstinline[basicstyle={\ttfamily}]!tokenize()! function -to determine the argument symbols and operand bit string. Finally -it uses the \lstinline[basicstyle={\ttfamily}]!instruction index! -to determine the instruction width. -\begin{itemize} -\item \lstinline[basicstyle={\ttfamily}]!second_pass(asm, label index)! -\end{itemize} -This function takes the pre-processed assembly code and \lstinline[basicstyle={\ttfamily}]!label index! -output by \lstinline[basicstyle={\ttfamily}]!first_pass()! as input. -First it checks for \lstinline[basicstyle={\ttfamily}]!ORG! and \lstinline[basicstyle={\ttfamily}]!DB! -statements and handles them if necessary. Then it replaces any labels -that were used before they were defined and therefore not replaced -on by \lstinline[basicstyle={\ttfamily}]!first_pass()! . It uses -the \lstinline[basicstyle={\ttfamily}]!instruction index ! to determine -the opcode and the width of the instruction, then it writes the opcode -and operand to the file. If the combined width of the opcode and operand -is greater than the instruction width the function raises an error. -\begin{itemize} -\item \lstinline[basicstyle={\ttfamily}]!tokenize(mnemonic, arguments)! -\end{itemize} -This function processes an instruction in order to produce a hashable -symbol that represents the format of its arguments. This symbol is -used to look up opcodes in the \lstinline[basicstyle={\ttfamily}]!instruction index!. -It also detects string representations of numbers in the arguments -and stores a C type struct representation of the operands to be returned -along with the symbol. It does this with the help of the \lstinline[basicstyle={\ttfamily}]!stoi()! -function and Python's \lstinline[basicstyle={\ttfamily}]!struct! -module . -\begin{itemize} -\item \lstinline[basicstyle={\ttfamily}]!stoi(string)! -\end{itemize} -This function is a general purpose function that is actually used -throughout the code, although mainly in the \lstinline[basicstyle={\ttfamily}]!tokenize()! -function. It takes a string as an input and tries to convert it to -an integer using Pythons integer representation syntax. It can recognize -decimal, octal, hexadecimal and binary numbers which are denoted with -different prefixes. If it receives a string it can not represent as -an integer it returns the string 'NaN', (Not a Number) - -\bigskip - -Below is an abstract representation of each functions logical process. -The \lstinline[basicstyle={\ttfamily}]!first_pass()! and \lstinline[basicstyle={\ttfamily}]!second_pass()! -are represented in pseudo-code, however \lstinline[basicstyle={\ttfamily}]!stoi()! -and \lstinline[basicstyle={\ttfamily}]!tokenize()! are more easily -understood when represented as flowcharts. - -\newpage{} - - -\subsection{\lstinline[basicstyle={\ttfamily}]!first_pass!} - -\begin{lstlisting}[basicstyle={\small\ttfamily},captionpos=b,frame=tb,framexbottommargin=3em,framextopmargin=3em,keywordstyle={\color{blue}},language=Python,showstringspaces=false,tabsize=4] -first_pass(source file): - - address = 0 - - for statement in source file: - - remove comments - - for word in statement: - - if word is in equate index: - replace word with equated value - else if word is in label index: - replace word with address at label - - if first word == 'org' - address = second word - else if last character of first word == ':': - remove ':' - add word = address to label index - next statement - else if second word == 'equ' - add first word = third word to equate index - next statement - - mnemonic = first word - arguments = [second word ... last word] - - symbol, constant = tokenize(arguments) - if mnemonic == 'db': - address = address + width of constant - next statement - - width = instruction index[mnemonic][symbol][width] - address = address + width - - append [mnemonic, argument, symbol, constant] to asm - - return asm, label index -\end{lstlisting} -\newpage{} - - -\subsection{\lstinline[basicstyle={\ttfamily}]!second_pass! } - -\begin{lstlisting}[basicstyle={\small\ttfamily},breaklines=true,captionpos=b,frame=tb,framexbottommargin=3em,framextopmargin=3em,keywordstyle={\color{blue}},language=Python,tabsize=4] -second_pass(file, asm, label index): - - address = 0 - - for line in asm: - - file offset = address - - mnemonic, arguments, symbol, constant = line - - if mnemonic == 'org': - address = first argument - next line - else if mnemonic == 'db': - write constant to file - address = address + width of constant - next line - - for argument in arguments: - if argument is a label: - replace argument with address at label - symbol, data = tokenize(argument) - append data to constant - - op, width = instruction index[mnemonic][symbol] - - write op to file - - if width of constant - width + 1 > 0: - raise error - else if: - write constant to file - address = address.+ width - - return file -\end{lstlisting} -\newpage{} - - -\subsection{\lstinline[basicstyle={\ttfamily}]!tokenize!} - -\bigskip - -\includegraphics[scale=0.57]{/home/jmz/qm/ede/doc/images/assembler/tokenize} - -\newpage{} - - -\subsection{\lstinline[basicstyle={\ttfamily}]!stoi! } - -\bigskip -\begin{description} -\item [{\includegraphics[scale=0.7]{/home/jmz/qm/ede/doc/images/assembler/stoi}}]~ -\end{description} -\newpage{} - - -\section{Assembly language manual} - -\newpage{} - - -\part{Emulator} - - -\section{Core microprocessor emulation} - -The core of the emulator is written in C using only standard libraries. -It executes the machine code output by the assembler according to -the ELB816 specification. It consists of the following files: -\begin{itemize} -\item \lstinline[basicstyle={\ttfamily}]!iset.c! and \lstinline[basicstyle={\ttfamily}]!iset.h! -\end{itemize} -These files contain the emulator instruction functions and function -look-up table. -\begin{itemize} -\item \lstinline[basicstyle={\ttfamily}]!mem.c! and \lstinline[basicstyle={\ttfamily}]!mem.h! -\end{itemize} -These files contain the emulators memory structure and memory access -functions. -\begin{itemize} -\item \lstinline[basicstyle={\ttfamily}]!emu.c! -\end{itemize} -This file contains the program's \lstinline[basicstyle={\ttfamily}]!main()! -function. It initializes the emulator and executes the programs fetch/decode/execute -cycle. - -\bigskip - -Below is a high level description of the content of each of these -files which should demonstrate how the emulator works. There is also -a large amount of material relevant to the emulator's design in the -appendix, which will be referenced when applicable. - - -\subsection{\lstinline[basicstyle={\ttfamily}]!iset.c! and \lstinline[basicstyle={\ttfamily}]!iset.h!} - -Each mnemonic in the ELB816 instruction set has a function defined -in these files. Each function is responsible for execution of all -the instructions that use its corresponding mnemonic. The function -look-up table is an array of pointers to these functions, where a -pointer's position in the list corresponds to the opcode of the instruction -to be executed. - -\bigskip - -\newpage{} - - -\subsection{\lstinline[basicstyle={\ttfamily}]!mem.c! and \lstinline[basicstyle={\ttfamily}]!mem.h!} - -The figures bellow illustrate the emulator's memory layout as defined -in the \lstinline[basicstyle={\ttfamily}]!mem.h! header file. - -\bigskip - -\lstinline[basicstyle={\ttfamily}]!mem.c! contains functions that -can be used to access this memory from the rest of the code. - -\newpage{} - - -\subsection{\lstinline[basicstyle={\ttfamily}]!emu.c!} - -This file contains the emulator's set-up and control procedures. It -includes all of the projects header files and controls the execution -of the functions contained in them. - -\bigskip - -It first executes a number of initialization procedures and then passes -control over to the main fetch/decode/execute cycle. This procedure -is shown below as a flowchart. To understand this it you must be familiar -with C's function pointer syntax. - -\bigskip - -\centerline{\includegraphics[scale=0.7]{/home/jmz/qm/ede/doc/images/emulator/fetch_decode_exe}} - -\newpage{} - - -\section{Peripherals} - -\newpage{} -\end{document} diff -r 02241452f397 -r 4411dee34085 doc/general/elb816_opcodes.csv --- a/doc/general/elb816_opcodes.csv Tue Apr 15 15:49:16 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,259 +0,0 @@ -ELB816 instruction set V0.9,,,,,, -,,,,,, -Dec,HEX,Binary,,Mnemonic,Register transfer description,Comments -0,00,00000000,,NOP,PC = PC+1,No Operation -1,01,00000001,,reserved,currently unallocated opcode - treat as NOP, -2,02,00000010,,reserved,currently unallocated opcode - treat as NOP, -3,03,00000011,,reserved,currently unallocated opcode - treat as NOP, -4,04,00000100,,reserved,currently unallocated opcode - treat as NOP, -5,05,00000101,,reserved,currently unallocated opcode - treat as NOP, -6,06,00000110,,reserved,currently unallocated opcode - treat as NOP, -7,07,00000111,,reserved,currently unallocated opcode - treat as NOP, -8,08,00001000,,SET C,1 -> CY,Set carry bit to 1 -9,09,00001001,,CLR C,0 -> CY,Set carry bit to 0 -10,0A,00001010,,SET BS,1 -> BS,Switch to register bank 1 -11,0B,00001011,,CLR BS,0 -> BS,Switch to register bank 0 -12,0C,00001100,,SET IE,1 -> IE,Enable interrupts -13,0D,00001101,,CLR IE,0 -> IE,Disable interrupts -14,0E,00001110,,CPL C,not CY -> CY,Complement carry bit -15,0F,00001111,,CPL A,not A -> A,Complement accumulator -16,10,00010000,,XCSD,SP -> DPTR : DPTR -> SP,Exchange SP with DPTR -17,11,00010001,,SFA,FLAGS -> A,store flags to accumulator -18,12,00010010,,LAF,A -> FLAGS,load accumulator to flags -19,13,00010011,,"MOV DPTR, SP",SP -> DPTR,move word SP to DPTR -20,14,00010100,,"MOV SP, DPTR",DPTR -> SP,move word DPTR to SP -21,15,00010101,,"MOV A, #data8",data8 -> A,move immediate byte to accumulator -22,16,00010110,,"MOV SP, #data16",data16 -> SP,move immediate word to SP -23,17,00010111,,"MOV DPTR, #data16",data16 -> DPTR,move immediate word to DPTR -24,18,00011000,,"MOV A, addr16",main[addr16] -> A,move data from direct address to accumulator -25,19,00011001,,"MOV addr16, A",A -> main[addr16],move data from accumulator to direct address -26,1A,00011010,,"MOV A, @A+DPTR",main[DPTR+A] -> A,indexed move relative to DPTR to accumulator -27,1B,00011011,,"MOV A, @A+PC",main[PC+A] -> A,indexed move relative to PC to accumulator -28,1C,00011100,,"MOV A, @addr16",main[main[addr16]] -> A,move data from indirect address to accumulator -29,1D,00011101,,"MOV @addr16, A",A -> main[main[addr16]],move data from accumulator to indirect address -30,1E,00011110, ,"MOV A, @DPTR",main[DPTR] -> A,register indirect move to accumulator -31,1F,00011111,,"MOV @DPTR, A",A -> main[DPTR],register indirect move from accumulator -32,20,00100000,,"MOV @DPTR, R0",R0 -> main[DPTR], -33,21,00100001,,"MOV @DPTR, R1",R1 -> main[DPTR], -34,22,00100010,,"MOV @DPTR, R2",R2 -> main[DPTR], -35,23,00100011,,"MOV @DPTR, R3",R3 -> main[DPTR], -36,24,00100100,,"MOV @DPTR, DPH",DPH -> main[DPTR], -37,25,00100101,,"MOV @DPTR, DPL",DPL -> main[DPTR], -38,26,00100110,,"MOV @DPTR, SPH",SPH -> main[DPTR], -39,27,00100111,,"MOV @DPTR, SPL",SPL -> main[DPTR], -40,28,00101000,,"MOV R0, #data8",data8 -> R0, -41,29,00101001,,"MOV R1, #data8",data8 -> R1, -42,2A,00101010,,"MOV R2, #data8",data8 -> R2, -43,2B,00101011,,"MOV R3, #data8",data8 -> R3, -44,2C,00101100,,"MOV DPH, #data8",data8 -> DPH, -45,2D,00101101,,"MOV DPL, #data8",data8 -> DPL, -46,2E,00101110,,"MOV SPH, #data8",data8 -> SPH, -47,2F,00101111,,"MOV SPL, #data8",data8 -> SPL, -48,30,00110000,,"MOV R0, A",A -> R0, -49,31,00110001,,"MOV R1, A",A -> R1, -50,32,00110010,,"MOV R2, A",A -> R2, -51,33,00110011,,"MOV R3, A",A -> R3, -52,34,00110100,,"MOV DPH, A",A -> DPH, -53,35,00110101,,"MOV DPL, A",A -> DPL, -54,36,00110110,,"MOV SPH, A",A -> SPH, -55,37,00110111,,"MOV SPL, A",A -> SPL, -56,38,00111000,,"MOV A, R0",R0 -> A, -57,39,00111001,,"MOV A, R1",R1 -> A, -58,3A,00111010,,"MOV A, R2",R2 -> A, -59,3B,00111011,,"MOV A, R3",R3 -> A, -60,3C,00111100,,"MOV A, DPH",DPH -> A, -61,3D,00111101,,"MOV A, DPL",DPL -> A, -62,3E,00111110,,"MOV A, SPH",SPH -> A, -63,3F,00111111,,"MOV A, SPL",SPL -> A, -64,40,01000000,,"MOV R0, @DPTR",main[DPTR] -> R0, -65,41,01000001,,"MOV R0, R1",R1 -> R0, -66,42,01000010,,"MOV R0, R2",R2 -> R0, -67,43,01000011,,"MOV R0, R3",R3 -> R0, -68,44,01000100,,"MOV R0, DPH",DPH -> R0, -69,45,01000101,,"MOV R0, DPL",DPL -> R0, -70,46,01000110,,"MOV R0, SPH",SPH -> R0, -71,47,01000111,,"MOV R0, SPL",SPL -> R0, -72,48,01001000,,"MOV R1, R0",R0 -> R1, -73,49,01001001,,"MOV R1, @DPTR",main[DPTR] -> R1, -74,4A,01001010,,"MOV R1, R2",R2 -> R1, -75,4B,01001011,,"MOV R1, R3",R3 -> R1, -76,4C,01001100,,"MOV R1, DPH",DPH -> R1, -77,4D,01001101,,"MOV R1, DPL",DPL -> R1, -78,4E,01001110,,"MOV R1, SPH",SPH -> R1, -79,4F,01001111,,"MOV R1, SPL",SPL -> R1, -80,50,01010000,,"MOV R2, R0",R0 -> R2, -81,51,01010001,,"MOV R2, R1",R1 -> R2, -82,52,01010010,,"MOV R2, @DPTR",main[DPTR] -> R2, -83,53,01010011,,"MOV R2, R3",R3 -> R2, -84,54,01010100,,"MOV R2, DPH",DPH -> R2, -85,55,01010101,,"MOV R2, DPL",DPL -> R2, -86,56,01010110,,"MOV R2, SPH",SPH -> R2, -87,57,01010111,,"MOV R2, SPL",SPL -> R2, -88,58,01011000,,"MOV R3, R0",R0 -> R3, -89,59,01011001,,"MOV R3, R1",R1 -> R3, -90,5A,01011010,,"MOV R3, R2",R2 -> R3, -91,5B,01011011,,"MOV R3, @DPTR",main[DPTR] -> R3, -92,5C,01011100,,"MOV R3, DPH",DPH -> R3, -93,5D,01011101,,"MOV R3, DPL",DPL -> R3, -94,5E,01011110,,"MOV R3, SPH",SPH -> R3, -95,5F,01011111,,"MOV R3, SPL",SPL -> R3, -96,60,01100000,,"MOV DPH, R0",R0 -> DPH, -97,61,01100001,,"MOV DPH, R1",R1 -> DPH, -98,62,01100010,,"MOV DPH, R2",R2 -> DPH, -99,63,01100011,,"MOV DPH, R3",R3 -> DPH, -100,64,01100100,,"MOV DPH, @DPTR",main[DPTR] -> DPH, -101,65,01100101,,"MOV DPH, DPL",DPL -> DPH, -102,66,01100110,,"MOV DPH, SPH",SPH -> DPH, -103,67,01100111,,"MOV DPH, SPL",SPL -> DPH, -104,68,01101000,,"MOV DPL, R0",R0 -> DPL, -105,69,01101001,,"MOV DPL, R1",R1 -> DPL, -106,6A,01101010,,"MOV DPL, R2",R2 -> DPL, -107,6B,01101011,,"MOV DPL, R3",R3 -> DPL, -108,6C,01101100,,"MOV DPL, DPH",DPH -> DPL, -109,6D,01101101,,"MOV DPL, @DPTR",main[DPTR] -> DPL, -110,6E,01101110,,"MOV DPL, SPH",SPH -> DPL, -111,6F,01101111,,"MOV DPL, SPL",SPL -> DPL, -112,70,01110000,,"MOV SPH, R0",R0 -> SPH, -113,71,01110001,,"MOV SPH, R1",R1 -> SPH, -114,72,01110010,,"MOV SPH, R2",R2 -> SPH, -115,73,01110011,,"MOV SPH, R3",R3 -> SPH, -116,74,01110100,,"MOV SPH, DPH",DPH -> SPH, -117,75,01110101,,"MOV SPH, DPL",DPL -> SPH, -118,76,01110110,,"MOV SPH, @DPTR",main[DPTR] -> SPH, -119,77,01110111,,"MOV SPH, SPL",SPL -> SPH, -120,78,01111000,,"MOV SPL, R0",R0 -> SPL, -121,79,01111001,,"MOV SPL, R1",R1 -> SPL, -122,7A,01111010,,"MOV SPL, R2",R2 -> SPL, -123,7B,01111011,,"MOV SPL, R3",R3 -> SPL, -124,7C,01111100,,"MOV SPL, DPH",DPH -> SPL, -125,7D,01111101,,"MOV SPL, DPL",DPL -> SPL, -126,7E,01111110,,"MOV SPL, SPH",SPH -> SPL, -127,7F,01111111,,"MOV SPL, @DPTR",main[DPTR] -> SPL, -128,80,10000000,,"ANL A, R0",A and R0 -> A, -129,81,10000001,,"ANL A, R1",A and R1 -> A, -130,82,10000010,,"ANL A, R2",A and R2 -> A, -131,83,10000011,,"ANL A, R3",A and R3 -> A, -132,84,10000100,,"ANL A, DPH",A and DPH -> A, -133,85,10000101,,"ANL A, DPL",A and DPL -> A, -134,86,10000110,,"ANL A, #data8",A and data8 -> A, -135,87,10000111,,"ANL A, @DPTR",A and main[DPTR] -> A, -136,88,10001000,,"ORL A, R0",A or R0 -> A, -137,89,10001001,,"ORL A, R1",A or R1 -> A, -138,8A,10001010,,"ORL A, R2",A or R2 -> A, -139,8B,10001011,,"ORL A, R3",A or R3 -> A, -140,8C,10001100,,"ORL A, DPH",A or DPH -> A, -141,8D,10001101,,"ORL A, DPL",A or DPL -> A, -142,8E,10001110,,"ORL A, #data8",A or data8 -> A, -143,8F,10001111,,"ORL A, @DPTR",A or main[DPTR] -> A, -144,90,10010000,,"XRL A, R0",A xor R0 -> A, -145,91,10010001,,"XRL A, R1",A xor R1 -> A, -146,92,10010010,,"XRL A, R2",A xor R2 -> A, -147,93,10010011,,"XRL A, R3",A xor R3 -> A, -148,94,10010100,,"XRL A, DPH",A xor DPH -> A, -149,95,10010101,,"XRL A, DPL",A xor DPL -> A, -150,96,10010110,,"XRL A, #data8",A xor data8 -> A, -151,97,10010111, ,"XRL A, @DPTR",A xor main[DPTR] -> A, -152,98,10011000,,RL A,rotate accumulator left, -153,99,10011001,,RLC A,rotate accumulator left through carry, -154,9A,10011010,,RR A,rotate accumulator right, -155,9B,10011011,,RRC A,rotate accumulator right through carry, -156,9C,10011100,,INC DPTR,DPTR + 1 -> DPTR,Increment DPTR -157,9D,10011101,,DEC DPTR,DPTR -1 -> DPTR,Decrement DPTR -158,9E,10011110,,INC A,A + 1 -> A,Increment accumulator -159,9F,10011111,,DEC A,A - 1 -> A,Decrement accumulator -160,A0,10100000,,"ADD A, R0",A + R0 -> A, -161,A1,10100001,,"ADD A, R1",A + R1 -> A, -162,A2,10100010,,"ADD A, R2",A + R2 -> A, -163,A3,10100011,,"ADD A, R3",A + R3 -> A, -164,A4,10100100,,"ADD A, DPH",A + DPH -> A, -165,A5,10100101,,"ADD A, DPL",A + DPL -> A, -166,A6,10100110,,"ADD A, #data8",A + data8 -> A, -167,A7,10100111,,"ADD A, @DPTR",A + main[DPTR] -> A, -168,A8,10101000,,"ADDC A, R0",A + R0 + CY -> A, -169,A9,10101001,,"ADDC A, R1",A + R1 + CY -> A, -170,AA,10101010,,"ADDC A, R2",A + R2 + CY -> A, -171,AB,10101011,,"ADDC A, R3",A + R3 + CY -> A, -172,AC,10101100,,"ADDC A, DPH",A + DPH + CY -> A, -173,AD,10101101,,"ADDC A, DPL",A + DPL + CY -> A, -174,AE,10101110,,"ADDC A, #data8",A + data8 + CY -> A, -175,AF,10101111,,"ADDC A, @DPTR",A + main[DPTR] + CY -> A, -176,B0,10110000,,"SUB A, R0",A - R0 -> A, -177,B1,10110001,,"SUB A, R1",A - R1 -> A, -178,B2,10110010,,"SUB A, R2",A - R2 -> A, -179,B3,10110011,,"SUB A, R3",A - R3 -> A, -180,B4,10110100,,"SUB A, DPH",A - DPH -> A, -181,B5,10110101,,"SUB A, DPL",A - DPL -> A, -182,B6,10110110,,"SUB A, #data8",A - data8 -> A, -183,B7,10110111,,"SUB A, @DPTR",A - main[DPTR] -> A, -184,B8,10111000,,"SUBB A, R0",A - R0 - CY -> A, -185,B9,10111001,,"SUBB A, R1",A - R1 - CY -> A, -186,BA,10111010,,"SUBB A, R2",A - R2 - CY -> A, -187,BB,10111011,,"SUBB A, R3",A - R3 - CY -> A, -188,BC,10111100,,"SUBB A, DPH",A - DPH - CY -> A, -189,BD,10111101,,"SUBB A, DPL",A - DPL - CY -> A, -190,BE,10111110,,"SUBB A, #data8",A - data8 - CY -> A, -191,BF,10111111,,"SUBB A, @DPTR",A - main[DPTR] - CY -> A, -192,C0,11000000,,PJMP addr11,Page Jump [PC(15:11) 0 0 0 addr8], -193,C1,11000001,,PJMP addr11,Page Jump [PC(15:11) 0 0 1 addr8], -194,C2,11000010,,PJMP addr11,Page Jump [PC(15:11) 0 1 0 addr8], -195,C3,11000011,,PJMP addr11,Page Jump [PC(15:11) 0 1 1 addr8], -196,C4,11000100,,PJMP addr11,Page Jump [PC(15:11) 1 0 0 addr8], -197,C5,11000101,,PJMP addr11,Page Jump [PC(15:11) 1 0 1 addr8], -198,C6,11000110,,PJMP addr11,Page Jump [PC(15:11) 1 1 0 addr8], -199,C7,11000111,,PJMP addr11,Page Jump [PC(15:11) 1 1 1 addr8], -200,C8,11001000,,PCALL addr11,Page Call [PC(15:11) 0 0 0 addr8], -201,C9,11001001,,PCALL addr11,Page Call [PC(15:11) 0 0 1 addr8], -202,CA,11001010,,PCALL addr11,Page Call [PC(15:11) 0 1 0 addr8], -203,CB,11001011,,PCALL addr11,Page Call [PC(15:11) 0 1 1 addr8], -204,CC,11001100,,PCALL addr11,Page Call [PC(15:11) 1 0 0 addr8], -205,CD,11001101,,PCALL addr11,Page Call [PC(15:11) 1 0 1 addr8], -206,CE,11001110,,PCALL addr11,Page Call [PC(15:11) 1 1 0 addr8], -207,CF,11001111,,PCALL addr11,Page Call [PC(15:11) 1 1 1 addr8], -208,D0,11010000,,"DJNZ R0, rel8",Decrement R0 and jump if not zero, -209,D1,11010001,,"DJNZ R1, rel8",Decrement R1 and jump if not zero, -210,D2,11010010,,"DJNZ R2, rel8",Decrement R2 and jump if not zero, -211,D3,11010011,,"DJNZ R3, rel8",Decrement R3 and jump if not zero, -212,D4,11010100,,"CJNE R0, #data, rel8",Compare R0 with data8 and jump if not equal, -213,D5,11010101,,"CJNE R1, #data, rel8",Compare R1 with data8 and jump if not equal, -214,D6,11010110,,"CJNE R2, #data, rel8",Compare R2 with data8 and jump if not equal, -215,D7,11010111,,"CJNE R3, #data, rel8",Compare R3 with data8 and jump if not equal, -216,D8,11011000,,LJMP addr16,Long jump to addr16, -217,D9,11011001,,LCALL addr16,Long call to subroutine at addr16, -218,DA,11011010,,RET,return from subroutine, -219,DB,11011011,,RETI,return from interrupt, -220,DC,11011100,,SJMP,short (relative) jump, -221,DD,11011101,,JMP @A+DPTR,Indexed indirect jump relative to DPTR, -222,DE,11011110,,JMP @DPTR,jump indirect to DPTR, -223,DF,11011111,,"CJNE A, #data8, rel8",Compare A with data8 and jump if not equal, -224,E0,11100000,,JZ rel8,Jump if zero, -225,E1,11100001,,JNZ rel8,Jump if not zero, -226,E2,11100010,,JC rel8,Jump if carry, -227,E3,11100011,,JNC rel8,Jump if not carry, -228,E4,11100100,,JPO rel8,Jump if parity odd, -229,E5,11100101,,JPE rel8,Jump if parity even, -230,E6,11100110,,JS rel8,Jump if sign (negative), -231,E7,11100111,,JNS rel8,Jump if not sign (positive), -232,E8,11101000,,PUSH R0,Push R0 to the stack, -233,E9,11101001,,PUSH R1,Push R1 to the stack, -234,EA,11101010,,PUSH R2,Push R2 to the stack, -235,EB,11101011,,PUSH R3,Push R3 to the stack, -236,EC,11101100,,PUSH DPH,Push DPH to the stack, -237,ED,11101101,,PUSH DPL,Push DPL to the stack, -238,EE,11101110,,PUSH A,Push Accumulator to the stack, -239,EF,11101111,,PUSH FLAGS,Push Flags register to the stack, -240,F0,11110000,,POP R0,Pop top off stack to R0, -241,F1,11110001,,POP R1,Pop top off stack to R1, -242,F2,11110010,,POP R2,Pop top off stack to R2, -243,F3,11110011,,POP R3,Pop top off stack to R3, -244,F4,11110100,,POP DPH,Pop top off stack to DPH, -245,F5,11110101,,POP DPL,Pop top off stack to DPL, -246,F6,11110110,,POP A,Pop top off stack to Accumulator, -247,F7,11110111,,POP FLAGS,Pop top off stack to Flags register, -248,F8,11111000,,"MUL R0, R1",R0 * R1 -> {R0 R1},"unsigned integer multiply R0 by R1, 16-bit result left in R0 and R1, R0 holds most significant byte" -249,F9,11111001,,"DIV R0, R1",R0 / R1 -> {R0 R1},"unsigned integer division R0 by R1, 16-bit result left in R0 and R1, R0 holds most significant byte" -250,FA,11111010,,DA A,Decimal adjust accumulator, -251,FB,11111011,,reserved,currently unallocated opcode - treat as NOP, -252,FC,11111100,,"IN A, port_addr",Input value on I/O port 'port_addr' to accumulator, -253,FD,11111101,,"OUT port_addr, A",Output accumulator value to I/O port 'port_addr', -254,FE,11111110,,INT vect8,Software interrupt at vector vect8, -255,FF,11111111,,HLT,Halt processor, diff -r 02241452f397 -r 4411dee34085 doc/general/elb816_opcodes.lyx --- a/doc/general/elb816_opcodes.lyx Tue Apr 15 15:49:16 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16919 +0,0 @@ -#LyX 2.0 created this file. For more info see http://www.lyx.org/ -\lyxformat 413 -\begin_document -\begin_header -\textclass article -\use_default_options false -\maintain_unincluded_children false -\language english -\language_package default -\inputencoding auto -\fontencoding global -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\use_non_tex_fonts false -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 - -\graphics default -\default_output_format default -\output_sync 0 -\bibtex_command default -\index_command default -\paperfontsize default -\use_hyperref false -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\use_mhchem 0 -\use_mathdots 1 -\cite_engine basic -\use_bibtopic false -\use_indices false -\paperorientation portrait -\suppress_date false -\use_refstyle 0 -\index Index -\shortcut idx -\color #008000 -\end_index -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation indent -\paragraph_indentation default -\quotes_language english -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\html_math_output 0 -\html_css_as_file 0 -\html_be_strict false -\end_header - -\begin_body - -\begin_layout Standard -\align left -\begin_inset Tabular - - - - - - - - - - - -\begin_inset Text - -\begin_layout Plain Layout -ELB816 instruction set V0.9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -Dec -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -HEX -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Binary -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Mnemonic -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Register transfer description -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Comments -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00000000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -NOP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PC = PC+1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -No Operation -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00000001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -reserved -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -currently unallocated opcode - treat as NOP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -02 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00000010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -reserved -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -currently unallocated opcode - treat as NOP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -03 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00000011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -reserved -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -currently unallocated opcode - treat as NOP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -04 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00000100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -reserved -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -currently unallocated opcode - treat as NOP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -05 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00000101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -reserved -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -currently unallocated opcode - treat as NOP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -6 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -06 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00000110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -reserved -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -currently unallocated opcode - treat as NOP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -7 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -07 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00000111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -reserved -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -currently unallocated opcode - treat as NOP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -08 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00001000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SET C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -1 -> CY -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Set carry bit to 1 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -09 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00001001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -CLR C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -0 -> CY -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Set carry bit to 0 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -10 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -0A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00001010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SET BS -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -1 -> BS -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Switch to register bank 1 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -0B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00001011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -CLR BS -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -0 -> BS -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Switch to register bank 0 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -12 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -0C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00001100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SET IE -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -1 -> IE -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Enable interrupts -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -13 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -0D -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00001101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -CLR IE -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -0 -> IE -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Disable interrupts -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -14 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -0E -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00001110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -CPL C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -not CY -> CY -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Complement carry bit -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -15 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -0F -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00001111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -CPL A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -not A -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Complement accumulator -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00010000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -XCSD -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SP -> DPTR : DPTR -> SP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Exchange SP with DPTR -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -17 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00010001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SFA -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -FLAGS -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -store flags to accumulator -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -18 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -12 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00010010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -LAF -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A -> FLAGS -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -load accumulator to flags -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -19 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -13 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00010011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV DPTR, SP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SP -> DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -move word SP to DPTR -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -20 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -14 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00010100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV SP, DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DPTR -> SP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -move word DPTR to SP -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -21 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -15 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00010101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV A, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -data8 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -move immediate byte to accumulator -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -22 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00010110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV SP, #data16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -data16 -> SP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -move immediate word to SP -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -23 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -17 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00010111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV DPTR, #data16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -data16 -> DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -move immediate word to DPTR -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -24 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -18 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00011000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV A, addr16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -main[addr16] -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -move data from direct address to accumulator -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -25 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -19 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00011001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV addr16, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A -> main[addr16] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -move data from accumulator to direct address -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -26 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -1A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00011010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV A, @A+DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -main[DPTR+A] -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -indexed move relative to DPTR to accumulator -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -27 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -1B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00011011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV A, @A+PC -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -main[PC+A] -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -indexed move relative to PC to accumulator -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -28 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -1C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00011100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV A, @addr16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -main[main[addr16]] -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -move data from indirect address to accumulator -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -29 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -1D -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00011101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV @addr16, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A -> main[main[addr16]] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -move data from accumulator to indirect address -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -30 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -1E -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00011110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV A, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -main[DPTR] -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -register indirect move to accumulator -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -31 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -1F -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00011111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV @DPTR, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A -> main[DPTR] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -register indirect move from accumulator -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -32 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -20 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00100000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV @DPTR, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R0 -> main[DPTR] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -33 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -21 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00100001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV @DPTR, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R1 -> main[DPTR] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -34 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -22 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00100010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV @DPTR, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R2 -> main[DPTR] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -35 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -23 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00100011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV @DPTR, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R3 -> main[DPTR] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -36 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -24 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00100100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV @DPTR, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DPH -> main[DPTR] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -37 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -25 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00100101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV @DPTR, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DPL -> main[DPTR] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -38 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -26 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00100110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV @DPTR, SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SPH -> main[DPTR] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -39 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -27 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00100111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV @DPTR, SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SPL -> main[DPTR] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -40 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -28 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00101000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R0, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -data8 -> R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -41 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -29 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00101001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R1, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -data8 -> R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -42 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -2A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00101010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R2, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -data8 -> R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -43 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -2B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00101011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R3, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -data8 -> R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -44 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -2C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00101100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV DPH, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -data8 -> DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -45 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -2D -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00101101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV DPL, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -data8 -> DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -46 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -2E -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00101110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV SPH, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -data8 -> SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -47 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -2F -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00101111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV SPL, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -data8 -> SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -48 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -30 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00110000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R0, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A -> R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -49 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -31 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00110001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R1, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A -> R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -50 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -32 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00110010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R2, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A -> R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -51 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -33 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00110011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R3, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A -> R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -52 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -34 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00110100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV DPH, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A -> DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -53 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -35 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00110101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV DPL, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A -> DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -54 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -36 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00110110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV SPH, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A -> SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -55 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -37 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00110111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV SPL, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A -> SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -56 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -38 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00111000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV A, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R0 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -57 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -39 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00111001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV A, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R1 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -58 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -3A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00111010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV A, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R2 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -59 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -3B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00111011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV A, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R3 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -60 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -3C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00111100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV A, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DPH -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -61 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -3D -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00111101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV A, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DPL -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -62 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -3E -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00111110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV A, SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SPH -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -63 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -3F -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -00111111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV A, SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SPL -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -64 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -40 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01000000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R0, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -main[DPTR] -> R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -65 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -41 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01000001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R0, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R1 -> R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -66 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -42 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01000010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R0, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R2 -> R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -67 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -43 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01000011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R0, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R3 -> R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -68 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -44 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01000100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R0, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DPH -> R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -69 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -45 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01000101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R0, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DPL -> R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -70 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -46 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01000110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R0, SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SPH -> R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -71 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -47 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01000111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R0, SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SPL -> R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -72 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -48 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01001000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R1, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R0 -> R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -73 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -49 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01001001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R1, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -main[DPTR] -> R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -74 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -4A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01001010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R1, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R2 -> R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -75 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -4B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01001011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R1, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R3 -> R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -76 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -4C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01001100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R1, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DPH -> R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -77 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -4D -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01001101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R1, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DPL -> R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -78 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -4E -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01001110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R1, SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SPH -> R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -79 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -4F -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01001111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R1, SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SPL -> R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -80 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -50 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01010000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R2, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R0 -> R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -81 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -51 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01010001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R2, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R1 -> R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -82 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -52 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01010010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R2, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -main[DPTR] -> R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -83 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -53 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01010011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R2, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R3 -> R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -84 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -54 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01010100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R2, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DPH -> R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -85 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -55 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01010101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R2, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DPL -> R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -86 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -56 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01010110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R2, SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SPH -> R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -87 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -57 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01010111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R2, SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SPL -> R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -88 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -58 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01011000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R3, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R0 -> R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -89 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -59 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01011001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R3, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R1 -> R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -90 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -5A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01011010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R3, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R2 -> R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -91 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -5B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01011011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R3, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -main[DPTR] -> R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -92 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -5C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01011100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R3, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DPH -> R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -93 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -5D -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01011101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R3, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DPL -> R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -94 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -5E -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01011110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R3, SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SPH -> R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -95 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -5F -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01011111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV R3, SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SPL -> R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -96 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -60 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01100000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV DPH, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R0 -> DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -97 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -61 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01100001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV DPH, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R1 -> DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -98 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -62 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01100010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV DPH, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R2 -> DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -99 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -63 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01100011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV DPH, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R3 -> DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -64 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01100100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV DPH, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -main[DPTR] -> DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -65 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01100101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV DPH, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DPL -> DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -102 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -66 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01100110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV DPH, SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SPH -> DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -103 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -67 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01100111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV DPH, SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SPL -> DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -104 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -68 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01101000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV DPL, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R0 -> DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -105 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -69 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01101001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV DPL, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R1 -> DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -106 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -6A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01101010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV DPL, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R2 -> DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -107 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -6B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01101011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV DPL, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R3 -> DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -108 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -6C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01101100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV DPL, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DPH -> DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -109 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -6D -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01101101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV DPL, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -main[DPTR] -> DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -6E -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01101110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV DPL, SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SPH -> DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -6F -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01101111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV DPL, SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SPL -> DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -112 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -70 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01110000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV SPH, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R0 -> SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -113 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -71 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01110001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV SPH, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R1 -> SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -114 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -72 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01110010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV SPH, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R2 -> SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -115 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -73 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01110011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV SPH, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R3 -> SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -116 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -74 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01110100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV SPH, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DPH -> SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -117 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -75 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01110101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV SPH, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DPL -> SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -118 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -76 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01110110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV SPH, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -main[DPTR] -> SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -119 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -77 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01110111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV SPH, SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SPL -> SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -120 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -78 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01111000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV SPL, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R0 -> SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -121 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -79 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01111001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV SPL, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R1 -> SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -122 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -7A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01111010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV SPL, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R2 -> SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -123 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -7B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01111011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV SPL, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R3 -> SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -124 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -7C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01111100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV SPL, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DPH -> SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -125 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -7D -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01111101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV SPL, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DPL -> SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -126 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -7E -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01111110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV SPL, SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SPH -> SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -127 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -7F -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -01111111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MOV SPL, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -main[DPTR] -> SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -128 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -80 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10000000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ANL A, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A and R0 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -129 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -81 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10000001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ANL A, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A and R1 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -130 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -82 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10000010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ANL A, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A and R2 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -131 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -83 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10000011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ANL A, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A and R3 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -132 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -84 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10000100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ANL A, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A and DPH -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -133 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -85 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10000101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ANL A, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A and DPL -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -134 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -86 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10000110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ANL A, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A and data8 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -135 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -87 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10000111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ANL A, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A and main[DPTR] -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -136 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -88 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10001000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ORL A, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A or R0 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -137 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -89 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10001001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ORL A, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A or R1 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -138 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -8A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10001010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ORL A, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A or R2 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -139 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -8B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10001011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ORL A, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A or R3 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -140 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -8C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10001100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ORL A, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A or DPH -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -141 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -8D -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10001101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ORL A, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A or DPL -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -142 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -8E -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10001110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ORL A, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A or data8 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -143 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -8F -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10001111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ORL A, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A or main[DPTR] -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -144 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -90 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10010000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -XRL A, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A xor R0 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -145 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -91 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10010001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -XRL A, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A xor R1 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -146 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -92 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10010010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -XRL A, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A xor R2 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -147 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -93 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10010011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -XRL A, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A xor R3 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -148 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -94 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10010100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -XRL A, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A xor DPH -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -149 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -95 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10010101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -XRL A, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A xor DPL -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -150 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -96 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10010110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -XRL A, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A xor data8 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -151 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -97 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10010111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -XRL A, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A xor main[DPTR] -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -152 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -98 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10011000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -RL A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -rotate accumulator left -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -153 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -99 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10011001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -RLC A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -rotate accumulator left through carry -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -154 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -9A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10011010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -RR A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -rotate accumulator right -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -155 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -9B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10011011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -RRC A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -rotate accumulator right through carry -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -156 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -9C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10011100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -INC DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DPTR + 1 -> DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Increment DPTR -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -157 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -9D -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10011101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DEC DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DPTR -1 -> DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Decrement DPTR -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -158 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -9E -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10011110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -INC A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A + 1 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Increment accumulator -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -159 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -9F -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10011111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DEC A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A - 1 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Decrement accumulator -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -160 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10100000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ADD A, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A + R0 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -161 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10100001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ADD A, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A + R1 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -162 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10100010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ADD A, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A + R2 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -163 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10100011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ADD A, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A + R3 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -164 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10100100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ADD A, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A + DPH -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -165 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10100101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ADD A, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A + DPL -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -166 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A6 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10100110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ADD A, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A + data8 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -167 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A7 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10100111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ADD A, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A + main[DPTR] -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -168 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10101000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ADDC A, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A + R0 + CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -169 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10101001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ADDC A, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A + R1 + CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -170 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -AA -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10101010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ADDC A, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A + R2 + CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -171 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -AB -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10101011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ADDC A, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A + R3 + CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -172 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -AC -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10101100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ADDC A, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A + DPH + CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -173 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -AD -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10101101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ADDC A, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A + DPL + CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -174 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -AE -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10101110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ADDC A, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A + data8 + CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -175 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -AF -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10101111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ADDC A, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A + main[DPTR] + CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -176 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -B0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10110000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SUB A, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A - R0 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -177 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -B1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10110001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SUB A, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A - R1 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -178 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -B2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10110010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SUB A, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A - R2 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -179 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -B3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10110011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SUB A, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A - R3 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -180 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -B4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10110100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SUB A, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A - DPH -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -181 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -B5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10110101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SUB A, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A - DPL -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -182 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -B6 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10110110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SUB A, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A - data8 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -183 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -B7 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10110111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SUB A, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A - main[DPTR] -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -184 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -B8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10111000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SUBB A, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A - R0 - CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -185 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -B9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10111001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SUBB A, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A - R1 - CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -186 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -BA -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10111010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SUBB A, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A - R2 - CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -187 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -BB -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10111011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SUBB A, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A - R3 - CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -188 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -BC -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10111100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SUBB A, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A - DPH - CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -189 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -BD -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10111101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SUBB A, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A - DPL - CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -190 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -BE -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10111110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SUBB A, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A - data8 - CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -191 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -BF -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -10111111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SUBB A, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A - main[DPTR] - CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -192 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -C0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11000000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PJMP addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Page Jump [PC(15:11) 0 0 0 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -193 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -C1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11000001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PJMP addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Page Jump [PC(15:11) 0 0 1 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -194 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -C2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11000010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PJMP addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Page Jump [PC(15:11) 0 1 0 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -195 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -C3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11000011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PJMP addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Page Jump [PC(15:11) 0 1 1 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -196 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -C4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11000100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PJMP addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Page Jump [PC(15:11) 1 0 0 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -197 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -C5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11000101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PJMP addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Page Jump [PC(15:11) 1 0 1 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -198 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -C6 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11000110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PJMP addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Page Jump [PC(15:11) 1 1 0 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -199 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -C7 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11000111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PJMP addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Page Jump [PC(15:11) 1 1 1 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -200 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -C8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11001000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PCALL addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Page Call [PC(15:11) 0 0 0 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -201 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -C9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11001001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PCALL addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Page Call [PC(15:11) 0 0 1 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -202 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -CA -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11001010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PCALL addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Page Call [PC(15:11) 0 1 0 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -203 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -CB -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11001011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PCALL addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Page Call [PC(15:11) 0 1 1 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -204 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -CC -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11001100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PCALL addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Page Call [PC(15:11) 1 0 0 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -205 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -CD -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11001101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PCALL addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Page Call [PC(15:11) 1 0 1 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -206 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -CE -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11001110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PCALL addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Page Call [PC(15:11) 1 1 0 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -207 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -CF -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11001111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PCALL addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Page Call [PC(15:11) 1 1 1 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -208 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -D0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11010000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DJNZ R0, rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Decrement R0 and jump if not zero -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -209 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -D1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11010001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DJNZ R1, rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Decrement R1 and jump if not zero -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -210 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -D2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11010010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DJNZ R2, rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Decrement R2 and jump if not zero -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -211 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -D3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11010011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DJNZ R3, rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Decrement R3 and jump if not zero -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -212 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -D4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11010100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -CJNE R0, #data, rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Compare R0 with data8 and jump if not equal -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -213 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -D5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11010101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -CJNE R1, #data, rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Compare R1 with data8 and jump if not equal -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -214 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -D6 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11010110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -CJNE R2, #data, rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Compare R2 with data8 and jump if not equal -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -215 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -D7 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11010111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -CJNE R3, #data, rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Compare R3 with data8 and jump if not equal -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -216 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -D8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11011000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -LJMP addr16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Long jump to addr16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -217 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -D9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11011001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -LCALL addr16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Long call to subroutine at addr16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -218 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DA -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11011010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -RET -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -return from subroutine -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -219 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DB -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11011011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -RETI -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -return from interrupt -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -220 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DC -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11011100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -SJMP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -short (relative) jump -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -221 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DD -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11011101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -JMP @A+DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Indexed indirect jump relative to DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -222 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DE -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11011110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -JMP @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -jump indirect to DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -223 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DF -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11011111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -CJNE A, #data8, rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Compare A with data8 and jump if not equal -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -224 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -E0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11100000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -JZ rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Jump if zero -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -225 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -E1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11100001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -JNZ rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Jump if not zero -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -226 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -E2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11100010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -JC rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Jump if carry -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -227 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -E3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11100011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -JNC rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Jump if not carry -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -228 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -E4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11100100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -JPO rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Jump if parity odd -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -229 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -E5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11100101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -JPE rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Jump if parity even -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -230 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -E6 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11100110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -JS rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Jump if sign (negative) -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -231 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -E7 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11100111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -JNS rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Jump if not sign (positive) -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -232 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -E8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11101000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PUSH R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Push R0 to the stack -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -233 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -E9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11101001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PUSH R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Push R1 to the stack -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -234 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -EA -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11101010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PUSH R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Push R2 to the stack -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -235 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -EB -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11101011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PUSH R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Push R3 to the stack -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -236 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -EC -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11101100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PUSH DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Push DPH to the stack -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -237 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -ED -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11101101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PUSH DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Push DPL to the stack -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -238 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -EE -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11101110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PUSH A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Push Accumulator to the stack -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -239 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -EF -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11101111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -PUSH FLAGS -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Push Flags register to the stack -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -240 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -F0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11110000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -POP R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Pop top off stack to R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -241 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -F1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11110001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -POP R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Pop top off stack to R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -242 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -F2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11110010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -POP R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Pop top off stack to R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -243 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -F3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11110011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -POP R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Pop top off stack to R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -244 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -F4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11110100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -POP DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Pop top off stack to DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -245 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -F5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11110101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -POP DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Pop top off stack to DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -246 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -F6 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11110110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -POP A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Pop top off stack to Accumulator -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -247 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -F7 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11110111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -POP FLAGS -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Pop top off stack to Flags register -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -248 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -F8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11111000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -MUL R0, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R0 * R1 -> {R0 R1} -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -unsigned integer multiply R0 by R1, 16-bit result left in R0 and R1, R0 - holds most significant byte -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -249 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -F9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11111001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DIV R0, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -R0 / R1 -> {R0 R1} -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -unsigned integer division R0 by R1, 16-bit result left in R0 and R1, R0 - holds most significant byte -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -250 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -FA -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11111010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -DA A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Decimal adjust accumulator -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -251 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -FB -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11111011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -reserved -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -currently unallocated opcode - treat as NOP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -252 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -FC -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11111100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -IN A, port_addr -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Input value on I/O port 'port_addr' to accumulator -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -253 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -FD -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11111101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -OUT port_addr, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Output accumulator value to I/O port 'port_addr' -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -254 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -FE -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11111110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -INT vect8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Software interrupt at vector vect8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -255 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -FF -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -11111111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -HLT -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -Halt processor -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_body -\end_document diff -r 02241452f397 -r 4411dee34085 doc/general/elb816_opcodes.lyx~ --- a/doc/general/elb816_opcodes.lyx~ Tue Apr 15 15:49:16 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16892 +0,0 @@ -#csv2lyx created this file -\lyxformat 276 -\begin_document -\begin_header -\textclass article -\inputencoding auto -\font_roman default -\font_sans default -\font_typewriter default -\font_default_family default -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\paperfontsize default -\papersize default -\use_geometry false -\use_amsmath 1 -\use_esint 0 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation indent -\defskip medskip -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\end_header - -\begin_body - -\begin_layout Standard -\align left -\begin_inset Tabular - - - - - - - - - - - -\begin_inset Text - -\begin_layout Standard -ELB816 instruction set V0.9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -Dec -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -HEX -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Binary -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Mnemonic -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Register transfer description -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Comments -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00000000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -NOP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PC = PC+1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -No Operation -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00000001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -reserved -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -currently unallocated opcode - treat as NOP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -02 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00000010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -reserved -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -currently unallocated opcode - treat as NOP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -03 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00000011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -reserved -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -currently unallocated opcode - treat as NOP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -04 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00000100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -reserved -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -currently unallocated opcode - treat as NOP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -05 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00000101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -reserved -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -currently unallocated opcode - treat as NOP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -6 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -06 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00000110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -reserved -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -currently unallocated opcode - treat as NOP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -7 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -07 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00000111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -reserved -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -currently unallocated opcode - treat as NOP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -08 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00001000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SET C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -1 -> CY -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Set carry bit to 1 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -09 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00001001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -CLR C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0 -> CY -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Set carry bit to 0 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -10 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00001010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SET BS -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -1 -> BS -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Switch to register bank 1 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00001011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -CLR BS -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0 -> BS -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Switch to register bank 0 -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -12 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00001100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SET IE -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -1 -> IE -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Enable interrupts -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -13 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0D -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00001101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -CLR IE -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0 -> IE -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Disable interrupts -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -14 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0E -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00001110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -CPL C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -not CY -> CY -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Complement carry bit -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -15 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -0F -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00001111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -CPL A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -not A -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Complement accumulator -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00010000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -XCSD -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SP -> DPTR : DPTR -> SP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Exchange SP with DPTR -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -17 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00010001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SFA -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -FLAGS -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -store flags to accumulator -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -18 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -12 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00010010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -LAF -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A -> FLAGS -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -load accumulator to flags -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -19 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -13 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00010011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV DPTR, SP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SP -> DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -move word SP to DPTR -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -20 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -14 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00010100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV SP, DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DPTR -> SP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -move word DPTR to SP -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -21 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -15 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00010101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV A, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -data8 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -move immediate byte to accumulator -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -22 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00010110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV SP, #data16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -data16 -> SP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -move immediate word to SP -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -23 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -17 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00010111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV DPTR, #data16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -data16 -> DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -move immediate word to DPTR -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -24 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -18 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00011000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV A, addr16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -main[addr16] -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -move data from direct address to accumulator -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -25 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -19 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00011001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV addr16, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A -> main[addr16] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -move data from accumulator to direct address -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -26 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -1A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00011010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV A, @A+DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -main[DPTR+A] -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -indexed move relative to DPTR to accumulator -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -27 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -1B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00011011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV A, @A+PC -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -main[PC+A] -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -indexed move relative to PC to accumulator -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -28 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -1C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00011100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV A, @addr16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -main[main[addr16]] -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -move data from indirect address to accumulator -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -29 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -1D -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00011101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV @addr16, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A -> main[main[addr16]] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -move data from accumulator to indirect address -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -30 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -1E -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00011110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV A, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -main[DPTR] -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -register indirect move to accumulator -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -31 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -1F -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00011111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV @DPTR, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A -> main[DPTR] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -register indirect move from accumulator -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -32 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -20 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00100000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV @DPTR, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R0 -> main[DPTR] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -33 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -21 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00100001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV @DPTR, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R1 -> main[DPTR] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -34 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -22 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00100010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV @DPTR, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R2 -> main[DPTR] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -35 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -23 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00100011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV @DPTR, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R3 -> main[DPTR] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -36 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -24 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00100100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV @DPTR, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DPH -> main[DPTR] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -37 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -25 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00100101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV @DPTR, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DPL -> main[DPTR] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -38 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -26 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00100110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV @DPTR, SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SPH -> main[DPTR] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -39 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -27 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00100111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV @DPTR, SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SPL -> main[DPTR] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -40 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -28 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00101000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R0, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -data8 -> R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -41 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -29 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00101001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R1, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -data8 -> R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -42 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -2A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00101010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R2, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -data8 -> R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -43 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -2B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00101011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R3, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -data8 -> R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -44 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -2C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00101100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV DPH, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -data8 -> DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -45 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -2D -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00101101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV DPL, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -data8 -> DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -46 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -2E -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00101110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV SPH, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -data8 -> SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -47 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -2F -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00101111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV SPL, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -data8 -> SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -48 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -30 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00110000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R0, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A -> R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -49 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -31 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00110001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R1, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A -> R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -50 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -32 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00110010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R2, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A -> R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -51 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -33 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00110011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R3, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A -> R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -52 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -34 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00110100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV DPH, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A -> DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -53 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -35 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00110101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV DPL, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A -> DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -54 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -36 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00110110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV SPH, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A -> SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -55 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -37 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00110111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV SPL, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A -> SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -56 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -38 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00111000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV A, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R0 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -57 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -39 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00111001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV A, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R1 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -58 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -3A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00111010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV A, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R2 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -59 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -3B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00111011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV A, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R3 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -60 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -3C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00111100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV A, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DPH -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -61 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -3D -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00111101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV A, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DPL -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -62 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -3E -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00111110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV A, SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SPH -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -63 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -3F -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -00111111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV A, SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SPL -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -64 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -40 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01000000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R0, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -main[DPTR] -> R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -65 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -41 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01000001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R0, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R1 -> R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -66 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -42 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01000010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R0, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R2 -> R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -67 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -43 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01000011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R0, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R3 -> R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -68 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -44 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01000100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R0, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DPH -> R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -69 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -45 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01000101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R0, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DPL -> R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -70 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -46 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01000110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R0, SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SPH -> R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -71 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -47 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01000111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R0, SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SPL -> R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -72 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -48 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01001000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R1, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R0 -> R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -73 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -49 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01001001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R1, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -main[DPTR] -> R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -74 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01001010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R1, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R2 -> R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -75 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01001011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R1, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R3 -> R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -76 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01001100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R1, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DPH -> R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -77 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4D -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01001101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R1, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DPL -> R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -78 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4E -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01001110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R1, SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SPH -> R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -79 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -4F -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01001111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R1, SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SPL -> R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -80 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -50 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01010000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R2, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R0 -> R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -81 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -51 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01010001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R2, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R1 -> R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -82 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -52 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01010010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R2, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -main[DPTR] -> R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -83 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -53 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01010011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R2, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R3 -> R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -84 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -54 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01010100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R2, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DPH -> R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -85 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -55 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01010101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R2, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DPL -> R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -86 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -56 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01010110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R2, SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SPH -> R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -87 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -57 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01010111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R2, SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SPL -> R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -88 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -58 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01011000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R3, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R0 -> R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -89 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -59 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01011001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R3, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R1 -> R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -90 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01011010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R3, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R2 -> R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -91 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01011011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R3, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -main[DPTR] -> R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -92 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01011100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R3, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DPH -> R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -93 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5D -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01011101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R3, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DPL -> R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -94 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5E -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01011110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R3, SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SPH -> R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -95 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -5F -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01011111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV R3, SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SPL -> R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -96 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -60 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01100000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV DPH, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R0 -> DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -97 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -61 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01100001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV DPH, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R1 -> DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -98 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -62 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01100010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV DPH, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R2 -> DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -99 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -63 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01100011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV DPH, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R3 -> DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -64 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01100100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV DPH, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -main[DPTR] -> DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -65 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01100101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV DPH, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DPL -> DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -102 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -66 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01100110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV DPH, SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SPH -> DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -103 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -67 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01100111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV DPH, SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SPL -> DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -104 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -68 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01101000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV DPL, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R0 -> DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -105 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -69 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01101001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV DPL, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R1 -> DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -106 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -6A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01101010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV DPL, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R2 -> DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -107 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -6B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01101011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV DPL, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R3 -> DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -108 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -6C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01101100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV DPL, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DPH -> DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -109 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -6D -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01101101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV DPL, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -main[DPTR] -> DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -6E -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01101110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV DPL, SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SPH -> DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -6F -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01101111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV DPL, SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SPL -> DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -112 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -70 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01110000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV SPH, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R0 -> SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -113 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -71 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01110001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV SPH, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R1 -> SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -114 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -72 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01110010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV SPH, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R2 -> SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -115 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -73 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01110011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV SPH, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R3 -> SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -116 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -74 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01110100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV SPH, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DPH -> SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -117 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -75 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01110101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV SPH, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DPL -> SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -118 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -76 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01110110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV SPH, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -main[DPTR] -> SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -119 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -77 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01110111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV SPH, SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SPL -> SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -120 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -78 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01111000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV SPL, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R0 -> SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -121 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -79 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01111001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV SPL, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R1 -> SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -122 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -7A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01111010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV SPL, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R2 -> SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -123 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -7B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01111011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV SPL, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R3 -> SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -124 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -7C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01111100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV SPL, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DPH -> SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -125 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -7D -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01111101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV SPL, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DPL -> SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -126 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -7E -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01111110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV SPL, SPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SPH -> SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -127 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -7F -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -01111111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MOV SPL, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -main[DPTR] -> SPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -128 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -80 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10000000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ANL A, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A and R0 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -129 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -81 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10000001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ANL A, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A and R1 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -130 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -82 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10000010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ANL A, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A and R2 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -131 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -83 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10000011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ANL A, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A and R3 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -132 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -84 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10000100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ANL A, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A and DPH -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -133 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -85 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10000101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ANL A, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A and DPL -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -134 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -86 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10000110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ANL A, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A and data8 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -135 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -87 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10000111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ANL A, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A and main[DPTR] -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -136 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -88 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10001000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ORL A, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A or R0 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -137 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -89 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10001001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ORL A, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A or R1 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -138 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10001010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ORL A, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A or R2 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -139 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10001011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ORL A, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A or R3 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -140 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10001100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ORL A, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A or DPH -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -141 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8D -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10001101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ORL A, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A or DPL -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -142 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8E -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10001110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ORL A, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A or data8 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -143 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -8F -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10001111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ORL A, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A or main[DPTR] -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -144 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -90 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10010000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -XRL A, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A xor R0 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -145 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -91 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10010001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -XRL A, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A xor R1 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -146 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -92 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10010010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -XRL A, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A xor R2 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -147 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -93 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10010011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -XRL A, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A xor R3 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -148 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -94 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10010100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -XRL A, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A xor DPH -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -149 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -95 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10010101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -XRL A, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A xor DPL -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -150 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -96 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10010110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -XRL A, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A xor data8 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -151 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -97 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10010111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -XRL A, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A xor main[DPTR] -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -152 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -98 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10011000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -RL A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -rotate accumulator left -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -153 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -99 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10011001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -RLC A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -rotate accumulator left through carry -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -154 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -9A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10011010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -RR A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -rotate accumulator right -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -155 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -9B -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10011011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -RRC A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -rotate accumulator right through carry -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -156 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -9C -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10011100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -INC DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DPTR + 1 -> DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Increment DPTR -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -157 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -9D -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10011101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DEC DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DPTR -1 -> DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Decrement DPTR -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -158 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -9E -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10011110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -INC A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A + 1 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Increment accumulator -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -159 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -9F -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10011111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DEC A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A - 1 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Decrement accumulator -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -160 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10100000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ADD A, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A + R0 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -161 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10100001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ADD A, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A + R1 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -162 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10100010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ADD A, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A + R2 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -163 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10100011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ADD A, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A + R3 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -164 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10100100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ADD A, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A + DPH -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -165 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10100101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ADD A, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A + DPL -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -166 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A6 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10100110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ADD A, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A + data8 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -167 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A7 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10100111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ADD A, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A + main[DPTR] -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -168 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10101000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ADDC A, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A + R0 + CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -169 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10101001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ADDC A, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A + R1 + CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -170 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -AA -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10101010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ADDC A, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A + R2 + CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -171 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -AB -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10101011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ADDC A, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A + R3 + CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -172 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -AC -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10101100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ADDC A, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A + DPH + CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -173 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -AD -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10101101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ADDC A, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A + DPL + CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -174 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -AE -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10101110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ADDC A, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A + data8 + CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -175 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -AF -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10101111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ADDC A, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A + main[DPTR] + CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -176 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -B0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10110000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SUB A, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A - R0 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -177 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -B1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10110001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SUB A, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A - R1 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -178 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -B2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10110010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SUB A, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A - R2 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -179 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -B3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10110011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SUB A, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A - R3 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -180 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -B4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10110100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SUB A, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A - DPH -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -181 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -B5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10110101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SUB A, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A - DPL -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -182 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -B6 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10110110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SUB A, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A - data8 -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -183 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -B7 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10110111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SUB A, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A - main[DPTR] -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -184 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -B8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10111000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SUBB A, R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A - R0 - CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -185 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -B9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10111001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SUBB A, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A - R1 - CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -186 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -BA -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10111010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SUBB A, R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A - R2 - CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -187 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -BB -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10111011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SUBB A, R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A - R3 - CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -188 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -BC -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10111100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SUBB A, DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A - DPH - CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -189 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -BD -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10111101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SUBB A, DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A - DPL - CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -190 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -BE -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10111110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SUBB A, #data8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A - data8 - CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -191 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -BF -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -10111111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SUBB A, @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -A - main[DPTR] - CY -> A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -192 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -C0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11000000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PJMP addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Page Jump [PC(15:11) 0 0 0 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -193 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -C1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11000001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PJMP addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Page Jump [PC(15:11) 0 0 1 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -194 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -C2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11000010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PJMP addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Page Jump [PC(15:11) 0 1 0 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -195 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -C3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11000011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PJMP addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Page Jump [PC(15:11) 0 1 1 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -196 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -C4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11000100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PJMP addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Page Jump [PC(15:11) 1 0 0 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -197 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -C5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11000101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PJMP addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Page Jump [PC(15:11) 1 0 1 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -198 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -C6 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11000110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PJMP addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Page Jump [PC(15:11) 1 1 0 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -199 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -C7 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11000111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PJMP addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Page Jump [PC(15:11) 1 1 1 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -200 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -C8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11001000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PCALL addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Page Call [PC(15:11) 0 0 0 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -201 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -C9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11001001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PCALL addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Page Call [PC(15:11) 0 0 1 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -202 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -CA -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11001010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PCALL addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Page Call [PC(15:11) 0 1 0 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -203 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -CB -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11001011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PCALL addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Page Call [PC(15:11) 0 1 1 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -204 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -CC -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11001100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PCALL addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Page Call [PC(15:11) 1 0 0 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -205 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -CD -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11001101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PCALL addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Page Call [PC(15:11) 1 0 1 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -206 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -CE -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11001110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PCALL addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Page Call [PC(15:11) 1 1 0 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -207 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -CF -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11001111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PCALL addr11 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Page Call [PC(15:11) 1 1 1 addr8] -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -208 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -D0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11010000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DJNZ R0, rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Decrement R0 and jump if not zero -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -209 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -D1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11010001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DJNZ R1, rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Decrement R1 and jump if not zero -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -210 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -D2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11010010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DJNZ R2, rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Decrement R2 and jump if not zero -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -211 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -D3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11010011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DJNZ R3, rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Decrement R3 and jump if not zero -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -212 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -D4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11010100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -CJNE R0, #data, rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Compare R0 with data8 and jump if not equal -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -213 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -D5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11010101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -CJNE R1, #data, rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Compare R1 with data8 and jump if not equal -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -214 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -D6 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11010110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -CJNE R2, #data, rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Compare R2 with data8 and jump if not equal -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -215 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -D7 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11010111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -CJNE R3, #data, rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Compare R3 with data8 and jump if not equal -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -216 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -D8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11011000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -LJMP addr16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Long jump to addr16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -217 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -D9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11011001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -LCALL addr16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Long call to subroutine at addr16 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -218 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DA -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11011010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -RET -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -return from subroutine -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -219 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DB -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11011011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -RETI -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -return from interrupt -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -220 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DC -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11011100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -SJMP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -short (relative) jump -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -221 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DD -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11011101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -JMP @A+DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Indexed indirect jump relative to DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -222 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DE -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11011110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -JMP @DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -jump indirect to DPTR -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -223 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DF -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11011111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -CJNE A, #data8, rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Compare A with data8 and jump if not equal -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -224 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -E0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11100000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -JZ rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Jump if zero -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -225 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -E1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11100001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -JNZ rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Jump if not zero -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -226 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -E2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11100010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -JC rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Jump if carry -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -227 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -E3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11100011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -JNC rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Jump if not carry -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -228 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -E4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11100100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -JPO rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Jump if parity odd -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -229 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -E5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11100101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -JPE rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Jump if parity even -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -230 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -E6 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11100110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -JS rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Jump if sign (negative) -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -231 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -E7 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11100111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -JNS rel8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Jump if not sign (positive) -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -232 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -E8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11101000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PUSH R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Push R0 to the stack -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -233 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -E9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11101001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PUSH R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Push R1 to the stack -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -234 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -EA -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11101010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PUSH R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Push R2 to the stack -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -235 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -EB -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11101011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PUSH R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Push R3 to the stack -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -236 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -EC -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11101100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PUSH DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Push DPH to the stack -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -237 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -ED -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11101101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PUSH DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Push DPL to the stack -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -238 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -EE -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11101110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PUSH A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Push Accumulator to the stack -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -239 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -EF -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11101111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -PUSH FLAGS -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Push Flags register to the stack -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -240 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -F0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11110000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -POP R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Pop top off stack to R0 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -241 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -F1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11110001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -POP R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Pop top off stack to R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -242 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -F2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11110010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -POP R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Pop top off stack to R2 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -243 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -F3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11110011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -POP R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Pop top off stack to R3 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -244 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -F4 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11110100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -POP DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Pop top off stack to DPH -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -245 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -F5 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11110101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -POP DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Pop top off stack to DPL -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -246 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -F6 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11110110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -POP A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Pop top off stack to Accumulator -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -247 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -F7 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11110111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -POP FLAGS -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Pop top off stack to Flags register -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -248 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -F8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11111000 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -MUL R0, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R0 * R1 -> {R0 R1} -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -unsigned integer multiply R0 by R1, 16-bit result left in R0 and R1, R0 holds most significant byte -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -249 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -F9 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11111001 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DIV R0, R1 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -R0 / R1 -> {R0 R1} -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -unsigned integer division R0 by R1, 16-bit result left in R0 and R1, R0 holds most significant byte -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -250 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -FA -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11111010 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -DA A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Decimal adjust accumulator -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -251 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -FB -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11111011 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -reserved -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -currently unallocated opcode - treat as NOP -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -252 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -FC -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11111100 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -IN A, port_addr -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Input value on I/O port 'port_addr' to accumulator -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -253 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -FD -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11111101 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -OUT port_addr, A -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Output accumulator value to I/O port 'port_addr' -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -254 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -FE -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11111110 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -INT vect8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Software interrupt at vector vect8 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Standard -255 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -FF -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -11111111 -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -HLT -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard -Halt processor -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Standard - -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_body -\end_document diff -r 02241452f397 -r 4411dee34085 doc/general/elb816_opcodes.ods Binary file doc/general/elb816_opcodes.ods has changed diff -r 02241452f397 -r 4411dee34085 doc/general/intro.pdf Binary file doc/general/intro.pdf has changed diff -r 02241452f397 -r 4411dee34085 doc/general/report.odt Binary file doc/general/report.odt has changed diff -r 02241452f397 -r 4411dee34085 doc/general/report.pdf Binary file doc/general/report.pdf has changed diff -r 02241452f397 -r 4411dee34085 doc/general/spec.odt Binary file doc/general/spec.odt has changed diff -r 02241452f397 -r 4411dee34085 doc/general/spec.pdf Binary file doc/general/spec.pdf has changed diff -r 02241452f397 -r 4411dee34085 doc/general/timeline.planner --- a/doc/general/timeline.planner Tue Apr 15 15:49:16 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,817 +0,0 @@ - - - - - - - EDE - Planner - - - - - - -

- EDE -

- - - - - - - - - -
Start:November 1, 2013
Finish:March 31, 2014
-
-
-

- Gantt Chart -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Name - - Work -
  
- - Project report - - - 151d -
- - Assembler development - - - 14d -
- - Emulator development (PC) - - - 61d -
- - Emulator development (MCS-51) - - - 45d -
- - Debugger development - - - 106d -
- - Testing - - - 151d -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Week 45, 2013Week 46, 2013Week 47, 2013Week 48, 2013Week 49, 2013Week 50, 2013Week 51, 2013Week 52, 2013Week 1, 2014Week 2, 2014Week 3, 2014Week 4, 2014Week 5, 2014Week 6, 2014Week 7, 2014Week 8, 2014Week 9, 2014Week 10, 2014Week 11, 2014Week 12, 2014Week 13, 2014Week 14, 2014
123456789101112131415161718192021222324252627282930123456789101112131415161718192021222324252627282930311234567891011121314151617181920212223242526272829303112345678910111213141516171819202122232425262728123456789101112131415161718192021222324252627282930311234567
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

- Tasks -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Name - - Start - - Finish - - Work -
- - Project report - - - Nov 1 - - Mar 31 - - 151d -
- - Assembler development - - - Nov 1 - - Nov 14 - - 14d -
- - Emulator development (PC) - - - Nov 15 - - Jan 14 - - 61d -
- - Emulator development (MCS-51) - - - Jan 15 - - Feb 28 - - 45d -
- - Debugger development - - - Nov 15 - - Feb 28 - - 106d -
- - Testing - - - Nov 1 - - Mar 31 - - 151d -
-
-
- - diff -r 02241452f397 -r 4411dee34085 doc/images/assembler/flowchart.svg --- a/doc/images/assembler/flowchart.svg Tue Apr 15 15:49:16 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,205 +0,0 @@ - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - start - - - - - - - end - - - diff -r 02241452f397 -r 4411dee34085 doc/images/assembler/stoi.pdf Binary file doc/images/assembler/stoi.pdf has changed diff -r 02241452f397 -r 4411dee34085 doc/images/assembler/stoi.svg --- a/doc/images/assembler/stoi.svg Tue Apr 15 15:49:16 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,879 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - start - end - s = input - is s octal? - is s decimal? - is s hex? - is s binary? - i = int(s, 8) - i = int(s, 10) - i = int(s, 16) - i = int(s, 2) - output = i - yes - yes - yes - yes - no - no - no - - - - - i = 'NaN' - - - no - - diff -r 02241452f397 -r 4411dee34085 doc/images/assembler/tokenize.pdf Binary file doc/images/assembler/tokenize.pdf has changed diff -r 02241452f397 -r 4411dee34085 doc/images/assembler/tokenize.svg --- a/doc/images/assembler/tokenize.svg Tue Apr 15 15:49:16 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1193 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - start - - args[0...n] = input - - i = 0 - - - is args[i]immediate data? - - sym[i] = data - - sym[i] = pointer - - sym[i] = address - - - does i = n? - - - - is args[i] a data pointer? - - - is args[i] a reservedarg? - - - end - - - is args[i]arithmeticto evaluate? - - sym[i] = args[i] - - - is args[i]represented as aa string? - - args[i] = result - - append string to constant - - value = stoi(args[i]) - - - i = i + 1 - - - is value 'NaN' - - - - - - - - - - - - - - - - - - - - sym[i] = label - - - append values bit stringto constant - - - - - - - - - - - no - no - no - no - no - no - yes - yes - yes - yes - yes - - no - output = sym, constant - yes - yes - - - - - - - - - - diff -r 02241452f397 -r 4411dee34085 doc/images/emulator/ELB816_system.svg --- a/doc/images/emulator/ELB816_system.svg Tue Apr 15 15:49:16 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4019 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - Internal control lines - - Address - - - ALU - TMP2 - - - - TMP1 - - - - - - - - - - - - - (TPL) (TPH) (TMPA) - - - - R0 R1 R2 (DPL) (DPH) - R3 - (SPL) (SPH) (PCL) (PCH) DPTR SP PC - - - MAR - - 16 - - - - - - - - - - MDR - - - - A - - - - - - FLAGS - - - - - IR - - InstructionDecoder - - - - - Timing and Control M RD WR - - - IO - INT - INTA - - Internal Data Bus - - - 8 8 8 - 8 - - 8-bit - - - - - - Data Bus Address Bus - - 8 16 - Main Memory64kB (65536 x 8-bit) RAM CE RD WR - - - Data Address - - - - - - - - - - - - - I/O Port - - - IN OUT CS RD WR - - Data - - - - - - - - Interrupt EN - - - - port address decode logic - - LS8 addr elb816-read-only/doc/images/svg/ELB816_system.svg - - - diff -r 02241452f397 -r 4411dee34085 doc/images/emulator/emu.svg --- a/doc/images/emulator/emu.svg Tue Apr 15 15:49:16 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,690 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - |--------| - |-------- --------| - BYTE (unsigned char): - WIDE (unsigned short): - - - - - R0 - R1 - R3 - R2 - - - DPH - - - DPL - - - - SP - PC - - - 64kB 16-bit Addressable main memory - A - - set_reg(reg, BYTE) - set_reg_wide(reg, WIDE) - fetch() -> WIDE - read_mem(WIDE) -> BYTE - write_mem(WIDE, BYTE) - set_pc(WIDE) - op = fetch() - execute(decode(op))} - - - - - - - get_reg(reg) -> BYTE - - set_reg(reg, WIDE) - get_reg_wide(reg) -> WIDE - - - - - - - - - - - for(;;) { - - - - - - - diff -r 02241452f397 -r 4411dee34085 doc/images/emulator/fetch_decode_exe.pdf Binary file doc/images/emulator/fetch_decode_exe.pdf has changed diff -r 02241452f397 -r 4411dee34085 doc/images/emulator/fetch_decode_exe.svg --- a/doc/images/emulator/fetch_decode_exe.svg Tue Apr 15 15:49:16 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,268 +0,0 @@ - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - start - - - - - boot() - - - - op = memory[PC] - - - - (*iset[op]) - - - - - - - - - - diff -r 02241452f397 -r 4411dee34085 doc/images/emulator/peripherals.svg --- a/doc/images/emulator/peripherals.svg Tue Apr 15 15:49:16 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,693 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - CPU - Programmable Interrupt Controller - Parallel port - - - - INTA INT - - - - Serial port UART - Timer Keypad IRQ inputs - - - - - - - Data Address - Port address Decoding logic - - - - - - - Display - - - Main RAM - - IO M - - - - - - cs cs cs cs cs cs irq irq irq irq elb816-read-only/doc/images/svg/peripherals.svg - - diff -r 02241452f397 -r 4411dee34085 doc/images/general/target.svg --- a/doc/images/general/target.svg Tue Apr 15 15:49:16 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,258 +0,0 @@ - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - GUI - Debugger - - Host serial interface MCU serial interface - hardware emulator - peripheral drivers PC software MCU software elb816-read-only/doc/images/svg/target2.svg - - diff -r 02241452f397 -r 4411dee34085 emu/iset.c --- a/emu/iset.c Tue Apr 15 15:49:16 2014 +0100 +++ b/emu/iset.c Wed Apr 16 16:51:39 2014 +0100 @@ -488,10 +488,10 @@ SUB(void) { if (NNN < 6) { if ((A - get_reg(NNN)) < 0){ - set_flag(OV, 1); + set_flag(S, 1); } else { - set_flag(OV, 0); + set_flag(S, 0); } A = A - get_reg(NNN); set_zp(A); @@ -502,10 +502,10 @@ case 6: tmpb = fetch(); if ((A - tmpb) < 0) { - set_flag(OV, 1); + set_flag(S, 1); } else { - set_flag(OV, 0); + set_flag(S, 0); } A = A - tmpb; set_zp(A); @@ -514,10 +514,10 @@ case 7: set_wide(TMP, get_wide(DPTR)); if ((A - mem[TMP]) < 0) { - set_flag(OV, 1); + set_flag(S, 1); } else { - set_flag(OV, 0); + set_flag(S, 0); } A = A - mem[TMP]; set_zp(A); @@ -576,45 +576,115 @@ /* 0xDC - SJMP rel8 */ void SJMP(void) { - set_wide(PC, get_wide(PC) + (signed char)fetch()); + /* -1 because the fetch() increments the PC */ + set_wide(PC, get_wide(PC) + (signed char)fetch() -1); } /* 0xDD - JMP @A+DPTR * 0xDE - JMP @DPTR */ void JMP(void) { + switch(IR) { + + case 0xDD: + set_wide(PC, A + get_wide(DPTR)); + break; + + case 0xDE: + set_wide(PC, get_wide(DPTR)); + break; + } } +/* 0xE0 - JZ rel8 */ void -JZ(void) { +JZ(void) { + if (get_flag(Z) == 1) { + set_wide(PC, get_wide(PC) + (signed char)fetch() -1); + } + /* skip rel8 if jump not needed */ + else { + inc_pc(1); + } } +/* 0xE1 - JNZ rel8 */ void JNZ(void) { + if (get_flag(Z) == 0) { + set_wide(PC, get_wide(PC) + (signed char)fetch() -1); + } + else { + inc_pc(1); + } } +/* 0xE2 - JC rel8 */ void -JC(void) { +JC(void) { + if (get_flag(C) == 1) { + set_wide(PC, get_wide(PC) + (signed char)fetch() -1); + } + else { + inc_pc(1); + } } +/* 0xE3 - JNC rel8 */ void -JNC(void) { +JNC(void) { + if (get_flag(C) == 0) { + set_wide(PC, get_wide(PC) + (signed char)fetch() -1); + } + else { + inc_pc(1); + } } +/* 0xE4 - JPO rel8 */ void -JPO(void) { +JPO(void) { + /* P = 1 when parity even */ + if (get_flag(P) == 0) { + set_wide(PC, get_wide(PC) + (signed char)fetch() -1); + } + else { + inc_pc(1); + } + } +/* 0xE5 - JPE rel8 */ void JPE(void) { + if (get_flag(P) == 1) { + set_wide(PC, get_wide(PC) + (signed char)fetch() -1); + } + else { + inc_pc(1); + } } +/* 0xE6 - JS rel8 */ void -JS(void) { +JS(void) { + if (get_flag(S) == 1) { + set_wide(PC, get_wide(PC) + (signed char)fetch() -1); + } + else { + inc_pc(1); + } } +/* 0xE7 - JNS rel8 */ void JNS(void) { + if (get_flag(S) == 0) { + set_wide(PC, get_wide(PC) + (signed char)fetch() -1); + } + else { + inc_pc(1); + } } void diff -r 02241452f397 -r 4411dee34085 emu/iset.h --- a/emu/iset.h Tue Apr 15 15:49:16 2014 +0100 +++ b/emu/iset.h Wed Apr 16 16:51:39 2014 +0100 @@ -3,151 +3,160 @@ #ifndef ISET_H #define ISET_H +#if defined MAIN +#define EXTERN +#else +#define EXTERN extern +#endif + + /* instruction pointer table */ -void (*iset[256])(void); +typedef struct { + void (*ops[256])(void); +} FUNCTION_TABLE; -void +EXTERN void JNS(void); -void +EXTERN void LJMP(void); -void +EXTERN void SET(void); -void +EXTERN void JPO(void); -void +EXTERN void ANL(void); -void +EXTERN void JNZ(void); -void +EXTERN void HLT(void); -void +EXTERN void RRC(void); -void +EXTERN void POP(void); -void +EXTERN void JNC(void); -void +EXTERN void SUBB(void); -void +EXTERN void PCALL(void); -void +EXTERN void IN(void); -void +EXTERN void INC(void); -void +EXTERN void XRL(void); -void +EXTERN void SUB(void); -void +EXTERN void RR(void); -void +EXTERN void SJMP(void); -void +EXTERN void RETI(void); -void +EXTERN void RET(void); -void +EXTERN void INT(void); -void +EXTERN void ADD(void); -void +EXTERN void ADDC(void); -void +EXTERN void RL(void); -void +EXTERN void MUL(void); -void +EXTERN void JC(void); -void +EXTERN void JMP(void); -void +EXTERN void DJNZ(void); -void +EXTERN void CLR(void); -void +EXTERN void JZ(void); -void +EXTERN void JPE(void); -void +EXTERN void LAF(void); -void +EXTERN void MOV(void); -void +EXTERN void RLC(void); -void +EXTERN void JS(void); -void +EXTERN void ORL(void); -void +EXTERN void CJNE(void); -void +EXTERN void XCSD(void); -void +EXTERN void LCALL(void); -void +EXTERN void DA(void); -void +EXTERN void NOP(void); -void +EXTERN void SFA(void); -void +EXTERN void CPL(void); -void +EXTERN void PUSH(void); -void +EXTERN void DIV(void); -void +EXTERN void DEC(void); -void +EXTERN void OUT(void); -void +EXTERN void PJMP(void); #endif diff -r 02241452f397 -r 4411dee34085 emu/main.c --- a/emu/main.c Tue Apr 15 15:49:16 2014 +0100 +++ b/emu/main.c Wed Apr 16 16:51:39 2014 +0100 @@ -7,7 +7,7 @@ /* fill instruction table * MCS-51 - this needs to be stored in code memory */ -void (*iset[256])(void) = { +FUNCTION_TABLE const iset = { NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, SET, CLR, SET, CLR, SET, CLR, CPL, CPL, XCSD, SFA, LAF, MOV, MOV, MOV, MOV, MOV, @@ -42,10 +42,22 @@ MUL, DIV, DA, NOP, IN, OUT, INT, HLT }; +BYTE pause; /* becomes 1 when we hit a break point in run mode */ BYTE free_run; /* free run if not 0 */ +BYTE pause; /* pause flag */ WIDE ac; /* address counter */ BYTE args[4]; /* dbg args */ +WIDE bp[8] = { 0xFFFF, + 0xFFFF, + 0xFFFF, + 0xFFFF, + 0xFFFF, + 0xFFFF, + 0xFFFF, + 0xFFFF +}; + /* don't need the file on the MCS-51 version */ FILE *fp; void @@ -64,99 +76,141 @@ void step(void) { IR = fetch(); - (*iset[IR])(); + iset.ops[IR](); } -void dbgi() { +void +run(void) { + while (pause != 1) { + step(); + for (ac = 0; ac < 8; ac++) { + if (bp[ac] == get_wide(PC)) { + pause = 1; + } + } + } +} + +void controller() { if (free_run == 0) { - switch (rcv()) { + switch (rcv()) { - /* step */ - case 0x00: - step(); - break; + /* step */ + case 0x00: + step(); + break; - /* run */ - case 0x01: - args[0] = rcv(); /* length high */ - args[1] = rcv(); /* length low */ - tmpw = get_wide(PC); - for (ac = tmpw ; ac < tmpw + MWIDE(args[0], args[1]) ; ac++) { - step(); - } - break; + /* run for length steps*/ + case 0x01: + run(); + break; - /* set reg */ - case 0x02: - args[0] = rcv(); /* reg */ - args[1] = rcv(); /* val */ - regs[args[0]] = args[1]; - break; + /* set reg */ + case 0x02: + args[0] = rcv(); /* reg */ + args[1] = rcv(); /* val */ + regs[args[0]] = args[1]; + break; - /* get reg */ - case 0x03: - args[0] = rcv(); /* reg */ - snd(regs[args[0]]); - break; + /* get reg */ + case 0x03: + args[0] = rcv(); /* reg */ + snd(regs[args[0]]); + break; - /* set flag */ - case 0x04: - args[0] = rcv(); /* flag */ - args[1] = rcv(); /* on? */ - set_flag(args[0], args[1]); - break; - - /* get flag */ - case 0x05: - args[0] = rcv(); /* flag */ - snd(get_flag(args[0])); - break; + /* set flag */ + case 0x04: + args[0] = rcv(); /* flag */ + args[1] = rcv(); /* on? */ + set_flag(args[0], args[1]); + break; + + /* get flag */ + case 0x05: + args[0] = rcv(); /* flag */ + snd(get_flag(args[0])); + break; - /* write mem block */ - case 0x06: - args[0] = rcv(); /* addr high */ - args[1] = rcv(); /* addr low */ - args[2] = rcv(); /* length high */ - args[3] = rcv(); /* length low */ - tmpw = MWIDE(args[0], args[1]); - for (ac = tmpw; ac < tmpw + MWIDE(args[2], args[3]); ac++) { - if (ac >= 0xFFFF) { + /* write mem block */ + case 0x06: + args[0] = rcv(); /* addr high */ + args[1] = rcv(); /* addr low */ + args[2] = rcv(); /* length high */ + args[3] = rcv(); /* length low */ + tmpw = MWIDE(args[0], args[1]); + for (ac = tmpw; ac < tmpw + MWIDE(args[2], args[3]); ac++) { + if (ac >= 0xFFFF) { + break; + } + mem[ac] = rcv(); + } + break; + + /* read mem block */ + case 0x07: + args[0] = rcv(); /* addr high */ + args[1] = rcv(); /* addr low */ + args[2] = rcv(); /* length high */ + args[3] = rcv(); /* length low */ + tmpw = MWIDE(args[0], args[1]); + for (ac = tmpw; ac < tmpw + MWIDE(args[2], args[3]); ac++) { + if (ac >= 0xFFFF) { + break; + } + snd(mem[ac]); + } + break; + + /* get A */ + case 0x09: + snd(A); + break; + + /* get flags */ + case 0x0A: + snd(flags); + break; + + /* get instruction register */ + case 0x0B: + snd(IR); + break; + + case 0x0C: + args[0] = rcv(); /* length high */ + args[1] = rcv(); /* length low */ + tmpw = get_wide(PC); + for (ac = tmpw ; ac < tmpw + MWIDE(args[0], args[1]) ; ac++) { + if (ac == 0xFFFF) { + break; + } + step(); + } + break; + + case 0x0D: + free_run = 1; + break; + + /* set break point */ + case 0x0E: + args[0] = rcv(); /* bp index */ + args[1] = rcv(); /* address high */ + args[2] = rcv(); /* address low */ + if (args[0] > 7) { break; } - mem[ac] = rcv(); - } - break; - - /* read mem block */ - case 0x07: - args[0] = rcv(); /* addr high */ - args[1] = rcv(); /* addr low */ - args[2] = rcv(); /* length high */ - args[3] = rcv(); /* length low */ - tmpw = MWIDE(args[0], args[1]); - for (ac = tmpw; ac < tmpw + MWIDE(args[2], args[3]); ac++) { - if (ac >= 0xFFFF) { - break; - } - snd(mem[ac]); - } - break; - - /* get A */ - case 0x09: - snd(A); - break; - - /* get flags */ - case 0x0A: - snd(flags); - break; - - /* get instruction register */ - case 0x0B: - snd(IR); - break; - } + bp[args[0]] = MWIDE(args[1], args[2]); + break; + + /* test cmd */ + case 0x54: + snd('A'); + break; + } + } + else { + step(); } } @@ -164,9 +218,8 @@ main(void) { /* dont go into free run on restart */ free_run = 0; - for (;;) { - dbgi(); + controller(); } } diff -r 02241452f397 -r 4411dee34085 emu/mem.c --- a/emu/mem.c Tue Apr 15 15:49:16 2014 +0100 +++ b/emu/mem.c Wed Apr 16 16:51:39 2014 +0100 @@ -36,7 +36,8 @@ set_flag(P, 0); } else { - /* think of this as folding */ + /* check parity + * think of this as folding */ val ^= val >> 4; val ^= val >> 2; val ^= val >> 1; diff -r 02241452f397 -r 4411dee34085 out Binary file out has changed diff -r 02241452f397 -r 4411dee34085 pycontroller.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pycontroller.py Wed Apr 16 16:51:39 2014 +0100 @@ -0,0 +1,8 @@ +# run this file with 'ipython -i pycontroller.py' for an interactive +# debugging python interface +from dbg.dbg import controller +from subprocess import Popen, PIPE, STDOUT + +emu = controller() +emu.Emu = Popen(['bin/emu'], stdout=PIPE, stdin=PIPE, stderr=PIPE) + diff -r 02241452f397 -r 4411dee34085 tests/asm/full Binary file tests/asm/full has changed diff -r 02241452f397 -r 4411dee34085 tests/asm/full.bin Binary file tests/asm/full.bin has changed diff -r 02241452f397 -r 4411dee34085 tests/asm/full.dsm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/asm/full.dsm Wed Apr 16 16:51:39 2014 +0100 @@ -0,0 +1,248 @@ +0x8 0x0 nop +0x9 0x8 set C +0xa 0x9 clr C +0xb 0xa set BS +0xc 0xb clr BS +0xd 0xc set iE +0xe 0xd clr IE +0xf 0xe cpl C +0x10 0xf cpl A +0x11 0x10 xcsd +0x12 0x11 sfa +0x13 0x12 laf +0x14 0x13 mov DPTR, SP +0x15 0x14 mov SP, DPTR +0x16 0x15 0x42 mov A, #'B' +0x18 0x16 0x5757 mov SP, #'WW' +0x1b 0x17 0x5757 mov DPTR, #((0x2BAB * 2) - 0x42 + 0x01 + 0x42) +0x1e 0x18 0x161 mov A, 353 +0x21 0x19 0x161 mov 353, A +0x24 0x1a mov A, @A+DPTR +0x25 0x1b mov A, @A+PC +0x26 0x1c 0x161 mov A, @353 +0x29 0x1d 0x161 mov @353, A +0x2c 0x1e mov A, @DPTR +0x2d 0x1f mov @DPTR, A +0x2e 0x20 mov @DPTR, R0 +0x2f 0x21 mov @DPTR, R1 +0x30 0x22 mov @DPTR, R2 +0x31 0x23 mov @DPTR, R3 +0x32 0x24 mov @DPTR, DPH +0x33 0x25 mov @DPTR, DPL +0x34 0x26 mov @DPTR, SPH +0x35 0x27 mov @DPTR, SPL +0x36 0x28 0x42 mov R0, #0x42 +0x38 0x29 0x42 mov R1, #0x42 +0x3a 0x2a 0x42 mov R2, #0x42 +0x3c 0x2b 0x42 mov R3, #0x42 +0x3e 0x2c 0x42 mov DPH, #0x42 +0x40 0x2d 0x42 mov DPL, #0x42 +0x42 0x2e 0x42 mov SPH, #0x42 +0x44 0x2f 0x42 mov SPL, #0x42 +0x46 0x30 mov R0, A +0x47 0x31 mov R1, A +0x48 0x32 mov R2, A +0x49 0x33 mov R3, A +0x4a 0x34 mov DPH, A +0x4b 0x35 mov DPL, A +0x4c 0x36 mov SPH, A +0x4d 0x37 mov SPL, A +0x4e 0x38 mov A, R0 +0x4f 0x39 mov A, R1 +0x50 0x3a mov A, R2 +0x51 0x3b mov A, R3 +0x52 0x3c mov A, DPH +0x53 0x3d mov A, DPL +0x54 0x3e mov A, SPH +0x55 0x3f mov A, SPL +0x56 0x40 mov R0, @DPTR +0x57 0x41 mov R0, R1 +0x58 0x42 mov R0, R2 +0x59 0x43 mov R0, R3 +0x5a 0x44 mov R0, DPH +0x5b 0x45 mov R0, DPL +0x5c 0x46 mov R0, SPH +0x5d 0x47 mov R0, SPL +0x5e 0x48 mov R1, R0 +0x5f 0x49 mov R1, @DPTR +0x60 0x4a mov R1, R2 +0x61 0x4b mov R1, R3 +0x62 0x4c mov R1, DPH +0x63 0x4d mov R1, DPL +0x64 0x4e mov R1, SPH +0x65 0x4f mov R1, SPL +0x66 0x50 mov R2, R0 +0x67 0x51 mov R2, R1 +0x68 0x52 mov R2, @DPTR +0x69 0x53 mov R2, R3 +0x6a 0x54 mov R2, DPH +0x6b 0x55 mov R2, DPL +0x6c 0x56 mov R2, SPH +0x6d 0x57 mov R2, SPL +0x6e 0x58 mov R3, R0 +0x6f 0x59 mov R3, R1 +0x70 0x5a mov R3, R2 +0x71 0x5b mov R3, @DPTR +0x72 0x5c mov R3, DPH +0x73 0x5d mov R3, DPL +0x74 0x5e mov R3, SPH +0x75 0x5f mov R3, SPL +0x76 0x60 mov DPH, R0 +0x77 0x61 mov DPH, R1 +0x78 0x62 mov DPH, R2 +0x79 0x63 mov DPH, R3 +0x7a 0x64 mov DPH, @DPTR +0x7b 0x65 mov DPH, DPL +0x7c 0x66 mov DPH, SPH +0x7d 0x67 mov DPH, SPL +0x7e 0x68 mov DPL, R0 +0x7f 0x69 mov DPL, R1 +0x80 0x6a mov DPL, R2 +0x81 0x6b mov DPL, R3 +0x82 0x6c mov DPL, DPH +0x83 0x6d mov DPL, @DPTR +0x84 0x6e mov DPL, SPH +0x85 0x6f mov DPL, SPL +0x86 0x70 mov SPH, R0 +0x87 0x71 mov SPH, R1 +0x88 0x72 mov SPH, R2 +0x89 0x73 mov SPH, R3 +0x8a 0x74 mov SPH, DPH +0x8b 0x75 mov SPH, DPL +0x8c 0x76 mov SPH, @DPTR +0x8d 0x77 mov SPH, SPL +0x8e 0x78 mov SPL, R0 +0x8f 0x79 mov SPL, R1 +0x90 0x7a mov SPL, R2 +0x91 0x7b mov SPL, R3 +0x92 0x7c mov SPL, DPH +0x93 0x7d mov SPL, DPL +0x94 0x7e mov SPL, SPH +0x95 0x7f mov SPL, @DPTR +0x96 0x80 anl A, R0 +0x97 0x81 anl A, R1 +0x98 0x82 anl A, R2 +0x99 0x83 anl A, R3 +0x9a 0x84 anl A, DPH +0x9b 0x85 anl A, DPL +0x9c 0x86 0x42 anl A, #0x42 +0x9e 0x87 anl A, @DPTR +0x9f 0x88 orl A, R0 +0xa0 0x89 orl A, R1 +0xa1 0x8a orl A, R2 +0xa2 0x8b orl A, R3 +0xa3 0x8c orl A, DPH +0xa4 0x8d orl A, DPL +0xa5 0x8e 0x42 orl A, #0x42 +0xa7 0x8f orl A, @DPTR +0xa8 0x90 xrl A, R0 +0xa9 0x91 xrl A, R1 +0xaa 0x92 xrl A, R2 +0xab 0x93 xrl A, R3 +0xac 0x94 xrl A, DPH +0xad 0x95 xrl A, DPL +0xae 0x96 0x42 xrl A, #0x42 +0xb0 0x97 xrl A, @DPTR +0xb1 0x98 rl A +0xb2 0x99 rlc A +0xb3 0x9a rr A +0xb4 0x9b rrc A +0xb5 0x9c inc DPTR +0xb6 0x9d dec DPTR +0xb7 0x9e inc A +0xb8 0x9f dec A +0xb9 0xa0 add A, R0 +0xba 0xa1 add A, R1 +0xbb 0xa2 add A, R2 +0xbc 0xa3 add A, R3 +0xbd 0xa4 add A, DPH +0xbe 0xa5 add A, DPL +0xbf 0xa6 0x42 add A, #0x42 +0xc1 0xa7 add A, @DPTR +0xc2 0xa8 addc A, R0 +0xc3 0xa9 addc A, R1 +0xc4 0xaa addc A, R2 +0xc5 0xab addc A, R3 +0xc6 0xac addc A, DPH +0xc7 0xad addc A, DPL +0xc8 0xae 0x42 addc A, #0x42 +0xca 0xaf addc A, @DPTR +0xcb 0xb0 sub A, R0 +0xcc 0xb1 sub A, R1 +0xcd 0xb2 sub A, R2 +0xce 0xb3 sub A, R3 +0xcf 0xb4 sub A, DPH +0xd0 0xb5 sub A, DPL +0xd1 0xb6 0x42 sub A, #0x42 +0xd3 0xb7 sub A, @DPTR +0xd4 0xb8 subb A, R0 +0xd5 0xb9 subb A, R1 +0xd6 0xba subb A, R2 +0xd7 0xbb subb A, R3 +0xd8 0xbc subb A, DPH +0xd9 0xbd subb A, DPL +0xda 0xbe 0x42 subb A, #0x42 +0xdc 0xbf subb A, @DPTR +0xdd 0xc1 0x61 pjmp 353 +0xdf 0xc1 0x61 pjmp 353 +0xe1 0xc1 0x61 pjmp 353 +0xe3 0xc1 0x61 pjmp 353 +0xe5 0xc1 0x61 pjmp 353 +0xe7 0xc1 0x61 pjmp 353 +0xe9 0xc1 0x61 pjmp 353 +0xeb 0xc1 0x61 pjmp 353 +0xed 0xc9 0x61 pcall 353 +0xef 0xc9 0x61 pcall 353 +0xf1 0xc9 0x61 pcall 353 +0xf3 0xc9 0x61 pcall 353 +0xf5 0xc9 0x61 pcall 353 +0xf7 0xc9 0x61 pcall 353 +0xf9 0xc9 0x61 pcall 353 +0xfb 0xc9 0x61 pcall 353 +0xfd 0xd0 0x64 djnz R0, 100 +0xff 0xd1 0x62 djnz R1, 98 +0x101 0xd2 0x60 djnz R2, 96 +0x103 0xd3 0x5e djnz R3, 94 +0x105 0xd4 0x5c cjne R0, #0x42, 92 +0x107 0xd5 0x5a cjne R1, #0x42, 90 +0x109 0xd6 0x58 cjne R2, #0x42, 88 +0x10b 0xd7 0x56 cjne R3, #0x42, 86 +0x10d 0xd8 0x161 ljmp 353 +0x110 0xd9 0x161 lcall 353 +0x113 0xda ret +0x114 0xdb reti +0x115 0xdc 0x4c sjmp 76 +0x117 0xdd jmp @A+DPTR +0x118 0xde jmp @DPTR +0x119 0xdf 0x4248 cjne A, #0x42, 72 +0x11c 0xe0 0x45 jz 69 +0x11e 0xe1 0x43 jnz 67 +0x120 0xe2 0x41 jc 65 +0x122 0xe3 0x3f jnc 63 +0x124 0xe4 0x3d jpo 61 +0x126 0xe5 0x3b jpe 59 +0x128 0xe6 0x39 js 57 +0x12a 0xe7 0x37 jns 55 +0x12c 0xe8 push R0 +0x12d 0xe9 push R1 +0x12e 0xea push R2 +0x12f 0xeb push R3 +0x130 0xec push DPH +0x131 0xed push DPL +0x132 0xee push A +0x133 0xef push FLAGS +0x134 0xf0 pop R0 +0x135 0xf1 pop R1 +0x136 0xf2 pop R2 +0x137 0xf3 pop R3 +0x138 0xf4 pop DPH +0x139 0xf5 pop DPL +0x13a 0xf6 pop A +0x13b 0xf7 pop FLAGS +0x13c 0xf8 mul R0, R1 +0x13d 0xf9 div R0, R1 +0x13e 0xfa da A +0x13f 0xfc 0x50 in A, 'P' +0x141 0xfd 0x50 out 'P', A +0x143 0xfe 0x56 int 'V' +0x145 0xff hlt diff -r 02241452f397 -r 4411dee34085 tests/dbg/build.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/dbg/build.sh Wed Apr 16 16:51:39 2014 +0100 @@ -0,0 +1,4 @@ +#!/bin/bash +killall emu +rm out +cp ../../dbg/dbg.py . diff -r 02241452f397 -r 4411dee34085 tests/dbg/dbg.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/dbg/dbg.py Wed Apr 16 16:51:39 2014 +0100 @@ -0,0 +1,109 @@ +#!/usr/bin/env python +# dbg.py - debug client +import struct +import os, sys +from time import sleep + +# talks to the emulator +# see controller() in emu/main.c for the inverse +class controller: + + def __init__(self): + self.Emu = None + open('out', 'w').close() + + # Alternetive snd and rcv functions need to be + # written read/write using serial buffer to make + # this class talk to an emulator running on + # an MCU + def snd(self, m): + self.Emu.stdin.write(struct.pack('>B', m)) + + def rcv(self, l): + lc = 0 + while lc != l: + lc = os.path.getsize('out') + #sleep(0.5) + with open('out', 'r') as f: + c = f.read() + open('out', 'w').close() + return c + + def step(self): + self.snd(0x00) + + def run(self): + self.snd(0x01) + + def set_reg(self, reg, data): + self.snd(0x02) + self.snd(reg) # reg + self.snd(data) # data + + def get_reg(self, reg): + self.snd(0x03) + self.snd(reg) # reg + return self.rcv(1) + + def set_flag(self, flag, on): + self.snd(0x04) + if on == 0: + self.snd(flag) + self.snd(0) + else: + self.snd(flag) + self.snd(1) + + def get_flag(self, flag): + self.snd(0x05) + self.snd(flag) + return self.rcv(1) + + def set_block(self, addrh, addrl, data): + self.snd(0x06) + self.snd(addrh) # address high byte + self.snd(addrl) # address low byte + self.snd((len(data) >> 8) & 0xFF) + self.snd(len(data) & 0xFF) + for b in data: + self.snd(b) # data + + def get_block(self, addrh, addrl, lenh, lenl): + block = [] + self.snd(0x07) + self.snd(addrh) # address high byte + self.snd(addrl) # address low byte + self.snd(lenh) + self.snd(lenl) + return self.rcv(lenl | (lenh << 8)) + + def get_a(self): + self.snd(0x09) + return self.rcv(1) + + def get_flags(self): + self.snd(0x0A) + return self.rcv(1) + + def get_ir(self): + self.snd(0x0B) + return self.rcv(1) + + def run_len(self, lenh, lenl): + self.snd(0x0C) + self.snd(lenh) + self.snd(lenl) + + def free_run(self): + self.snd(0x0D) + + def set_bp(self, i, addrh, addrl): + self.snd(0x0E) + self.snd(i) + self.snd(addrh) + self.snd(addrl) + + + + + diff -r 02241452f397 -r 4411dee34085 tests/dbg/dbg.pyc Binary file tests/dbg/dbg.pyc has changed diff -r 02241452f397 -r 4411dee34085 tests/dbg/results --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/dbg/results Wed Apr 16 16:51:39 2014 +0100 @@ -0,0 +1,8 @@ +testing register setting and getting... +passed +testing setting +passed +clearing some flags and testing get flag function +passed +fill entire memory space with SET C (0x08), execute the entire lot, and then check PC and IR... +passed diff -r 02241452f397 -r 4411dee34085 tests/dbg/test_dbg.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/dbg/test_dbg.py Wed Apr 16 16:51:39 2014 +0100 @@ -0,0 +1,56 @@ +#!/usr/bin/env python +import struct +from subprocess import Popen, PIPE, STDOUT +from dbg import controller +emu = controller() +emu.Emu = Popen(['../../bin/emu'], stdout=PIPE, stdin=PIPE, stderr=PIPE) + +print 'testing register setting and getting...' +# fill registers with their index number +for r in range(16): + emu.set_reg(r, r) +# ask for them back +regs = [] +for r in range(16): + regs.append(struct.unpack('>B', emu.get_reg(r))[0]) + +if set(regs) == set(range(16)): + print 'passed' +else: + print 'failed' + print regs + +print 'testing setting' +for f in range(8): + emu.set_flag(f, 1) + +if struct.unpack('>B', emu.get_flags())[0] == 0xFF: + print 'passed' +else: + print 'failed' + +print 'clearing some flags and testing get flag function' +for f in range(4): + emu.set_flag(f, 0) + +if struct.unpack('>B', emu.get_flags())[0] == 0xF0: + print 'passed' +else: + print 'failed' + +print 'fill entire memory space with SET C (0x08), execute the entire lot, and then check PC and IR...' +blk = [0x08 for x in range(0xFFFF)] +emu.set_block(0, 0, blk) +rblk = emu.get_block(0x00, 0x00, 0xFF, 0xFF) +ra = [struct.unpack('>B', c)[0] for c in rblk] +emu.set_reg(14, 0) +emu.set_reg(6, 0) +emu.run_len(0xFF, 0xFF) + +if ( (struct.unpack('>B', emu.get_reg(14))[0] == 0xff) and \ + (struct.unpack('>B', emu.get_reg(6))[0] == 0xff) and \ + (struct.unpack('>B', emu.get_ir())[0] == 0x08) ): + print 'passed' +else: + print 'failed' +emu.Emu.kill() diff -r 02241452f397 -r 4411dee34085 tests/emu/build.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/emu/build.sh Wed Apr 16 16:51:39 2014 +0100 @@ -0,0 +1,6 @@ +#!/bin/bash +cp ../../emu/mem.c . +cp ../../emu/mem.h . +gcc -std=c89 mem.c test_mem.c -o test_mem + + diff -r 02241452f397 -r 4411dee34085 tests/emu/mem.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/emu/mem.c Wed Apr 16 16:51:39 2014 +0100 @@ -0,0 +1,142 @@ +/* mem.c + * functions for accessing emulator memory */ +#include "mem.h" + +/* get flag value + * if invalid flag is requested value is 0 */ +BYTE +get_flag(BYTE flag) { + if (flag > 7) { + return 0; + } + else { + return GBIT(flags, flag); + } +} + +/* set flag to 0 if on == 0 + * otherwise set flag to 1 */ +void +set_flag(BYTE flag, BYTE on) { + if (flag <= 7) { + if (on == 0x00) { + flags = CBIT(flags, flag); + } + else { + flags = SBIT(flags, flag); + } + } +} + +/* sets zero and parity flags based on content of byte */ +void +set_zp(BYTE val){ + if (val == 0) { + set_flag(Z, 1); + set_flag(P, 0); + } + else { + /* check parity + * think of this as folding */ + val ^= val >> 4; + val ^= val >> 2; + val ^= val >> 1; + val &= 1; + if (val == 0) { + set_flag(P, 1); + } + else { + set_flag(P, 0); + } + } +} + +WIDE +get_wide(BYTE reg) { + /* high, low */ + return MWIDE(regs[reg + 4], regs[reg + 12]); +} + +void +set_wide(BYTE reg, WIDE val) { + regs[reg + 4] = GHIGH(val); /* high */ + regs[reg + 12] = GLOW(val); /* low */ +} + +void +inc_pc(BYTE n) { + if ((regs[PCL] + n) > 0xFF) { + regs[PCH]++; + } + regs[PCL] += n; +} + +BYTE +fetch(void) { + BYTE val = mem[get_wide(PC)]; + inc_pc(1); + return val; +} + +WIDE +fetch_wide(void) { + WIDE val = MWIDE(mem[get_wide(PC)], mem[get_wide(PC) + 1]); + inc_pc(2); + return val; +} + +/* 0b000 = R0 + * 0b001 = R1 + * 0b010 = R2 + * 0b011 = R3 + * 0b100 = DPH + * 0b101 = DPL + * 0b110 = SPH + * 0b111 = SPL */ +BYTE +get_reg(BYTE reg) { + if (reg < 4) { + return regs[reg | (get_flag(BS) << 3)]; + } + else { + switch (reg) { + + case 4: + return regs[DPH]; + case 5: + return regs[DPL]; + case 6: + return regs[SPH]; + case 7: + return regs[SPL]; + default: + return 0; + } + } +} + +void +set_reg(BYTE reg, BYTE val) { + if (reg < 4) { + regs[reg | (get_flag(BS) << 3)] = val; + } + else { + switch (reg) { + + case 4: + regs[DPH] = val; + break; + case 5: + regs[DPL] = val; + break; + case 6: + regs[SPH] = val; + break; + case 7: + regs[SPL] = val; + break; + default: + break; + } + } +} diff -r 02241452f397 -r 4411dee34085 tests/emu/mem.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/emu/mem.h Wed Apr 16 16:51:39 2014 +0100 @@ -0,0 +1,133 @@ +/* mem.h */ +#ifndef MEM_H +#define MEM_H + +#if defined MAIN +#define EXTERN +#else +#define EXTERN extern +#endif + +/* 8 bit register encodings */ +#define R0 (0 | (get_flag(0) << 3)) +#define R1 (1 | (get_flag(0) << 3)) +#define R2 (2 | (get_flag(0) << 3)) +#define R3 (3 | (get_flag(0) << 3)) +#define DPH 4 +#define SPH 5 +#define PCH 6 +#define TMPH 7 +#define DPL 12 +#define SPL 13 +#define PCL 14 +#define TMPL 15 + +/* 16 bit register encodings */ +#define DPTR 0 +#define SP 1 +#define PC 2 +#define TMP 3 + +/* flag bits numbered from LSB -> MSB + * 7 6 5 4 3 2 1 0 + * C Z AC P S OV IE BS */ +#define BS 0 +#define IE 1 +#define OV 2 +#define S 3 +#define P 4 +#define AC 5 +#define Z 6 +#define C 7 + +/* for getting and setting flags */ +#define GBIT(byte, n) (byte & (0x01 << n) ? 1 : 0) +#define SBIT(byte, n) (byte | (0x01 << n)) +#define CBIT(byte, n) (byte ^ (0x01 << n)) + +/* for making and breaking 16 bit values */ +#define MWIDE(high, low) (low | (high << 8)) +#define GHIGH(wide) ((wide >> 8) & 0xFF) +#define GLOW(wide) (wide & 0xFF) + +typedef unsigned char BYTE; +typedef unsigned short WIDE; + +/* these are needed for some operations */ +EXTERN BYTE tmpb; +EXTERN WIDE tmpw; + +EXTERN BYTE IR; +EXTERN BYTE A; +EXTERN BYTE flags; + +/* 0x00 0b0000 r0 bank 0 + 0x01 0b0001 r1 bank 0 + 0x02 0b0010 r2 bank 0 + 0x03 0b0011 r3 bank 0 + 0x04 0b0100 dph + 0x05 0b0101 sph + 0x06 0b0110 pch + 0x07 0b0111 tmph + 0x08 0b1000 r0 bank 1 + 0x09 0b1001 r1 bank 1 + 0x0A 0b1010 r2 bank 1 + 0x0B 0b1011 r3 bank 1 + 0x0C 0b1100 dpl + 0x0D 0b1101 spl + 0x0E 0b1110 pcl + 0x0F 0b1111 tmpl */ +EXTERN BYTE regs[0x10]; + +/* 64K Von Neumann memory */ +EXTERN BYTE mem[0x10000]; + +/* functions to dealing with flags */ +EXTERN BYTE +get_flag(BYTE flag); + +EXTERN void +set_flag(BYTE flag, BYTE on); + +EXTERN void +set_zp(BYTE val); + +/* this function a byte and returns a byte + * with zero and parity flags set or unset. + * result should be or'd with flags reg */ +EXTERN BYTE +gen_flags(BYTE val); + +/* functions for dealing with 16-bit registers + * access the 16 bit registers. + * register map for these function: + * 0b00 dptr + * 0b01 sp + * 0b10 pc + * 0b11 tmp */ +EXTERN WIDE +get_wide(BYTE reg); + +EXTERN void +set_wide(BYTE reg, WIDE val); + +/* functions to fetch data at PC */ +EXTERN void +inc_pc(BYTE n); + +EXTERN BYTE +fetch(); + +EXTERN WIDE +fetch_wide(); + +/* for mapping the register encoding in the instruction + * set to the register address */ +EXTERN BYTE +get_reg(BYTE reg); + +EXTERN void +set_reg(BYTE reg, BYTE val); + + +#endif diff -r 02241452f397 -r 4411dee34085 tests/emu/mem/test_mem Binary file tests/emu/mem/test_mem has changed diff -r 02241452f397 -r 4411dee34085 tests/emu/mem/test_mem.bin Binary file tests/emu/mem/test_mem.bin has changed diff -r 02241452f397 -r 4411dee34085 tests/emu/mem/test_mem.c --- a/tests/emu/mem/test_mem.c Tue Apr 15 15:49:16 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -#include - -#define MAIN -#include "mem.h" - -void -main(void) { - A = 0xAA; - IR = 0x12; - - unsigned char i; - for (i = 0 ; i < 8 ; i++) { - set_flag(i, 1); - } - - set_wide(DPTR, 0xDE1D); - set_wide(SP, 0xADEA); - set_wide(PC, 0xBEFA); - set_wide(TMP, 0xEFC3); - - for (i = 0; i < 4; i++) { - regs[i] = i; - } - - for (i = 8; i < 0x0C; i++) { - regs[i] = 0x10 | (i - 8); - } - - /* 0xAC 0x12 0xFF - * 0x00 0x01 0x02 0x03 - * 0xDE 0xAD 0xBE 0xFF - * 0x10 0x11 0x12 0x13 - * 0x1D 0xEA 0xFA 0xC3 - * 0xDE 0x1D 0xBE 0xFA - * 0xAD 0xEA 0xEF 0xC3*/ - - putchar(A); - putchar(IR); - putchar(flags); - - for (i = 0; i < 0x10; i++) { - putchar(regs[i]); - } - - unsigned short int data_pointer = get_wide(DPTR); - unsigned short int program_counter = get_wide(PC); - unsigned short int stack_pointer = get_wide(SP); - unsigned short int temp = get_wide(TMP); - - putchar((data_pointer >> 8) & 0xFF); - putchar(data_pointer & 0xFF); - putchar((program_counter >> 8) & 0xFF); - putchar(program_counter & 0xFF); - putchar((stack_pointer >> 8) & 0xFF); - putchar(stack_pointer & 0xFF); - putchar((temp >> 8) & 0xFF); - putchar(temp & 0xFF); - - - int ac; - for (ac = 0 ; ac < 0x10000 ; ac++) { - mem[ac] = ac & 0xFF; - } - for (ac = 0 ; ac < 0x10000 ; ac++) { - putchar(fetch()); - } -} - - - diff -r 02241452f397 -r 4411dee34085 tests/emu/test.c --- a/tests/emu/test.c Tue Apr 15 15:49:16 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -#include - -unsigned char regs[0x10]; - -void -main(void) { - unsigned char C = 0xFD; - printf("%i", (signed char)C); -} diff -r 02241452f397 -r 4411dee34085 tests/emu/test_mem Binary file tests/emu/test_mem has changed diff -r 02241452f397 -r 4411dee34085 tests/emu/test_mem.bin Binary file tests/emu/test_mem.bin has changed diff -r 02241452f397 -r 4411dee34085 tests/emu/test_mem.c --- a/tests/emu/test_mem.c Tue Apr 15 15:49:16 2014 +0100 +++ b/tests/emu/test_mem.c Wed Apr 16 16:51:39 2014 +0100 @@ -26,14 +26,6 @@ regs[i] = 0x10 | (i - 8); } - /* 0xAC 0x12 0xFF - * 0x00 0x01 0x02 0x03 - * 0xDE 0xAD 0xBE 0xFF - * 0x10 0x11 0x12 0x13 - * 0x1D 0xEA 0xFA 0xC3 - * 0xDE 0x1D 0xBE 0xFA - * 0xAD 0xEA 0xEF 0xC3*/ - putchar(A); putchar(IR); putchar(flags); diff -r 02241452f397 -r 4411dee34085 utils/test.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/utils/test.c Wed Apr 16 16:51:39 2014 +0100 @@ -0,0 +1,9 @@ +#include + +unsigned char regs[0x10]; + +void +main(void) { + unsigned char C = 0xFD; + printf("%i", (signed char)C); +}