![](/images/new-backgrounds/1290705/290705567x1.webp)
APPENDIX
BENCHMARK: Block Translate
PROCESSOR: I nte 1 i APX 88
REGISTER USAGE
AL ACCUMULATOR
BX TRANSLATE TABLE POINTER CX - COUNT
SI EBCBUF POINTER
01 - ASCIBUF POINTER
Bytes | Cycles |
|
|
|
|
|
|
|
|
|
4 | 8 | LEA |
| BX, | TABLE | ;Initialize | Table | Pointer | ||
4 | 8 | LEA |
| SI, | EBCBUF | ;Initialize | EBCDIC Pointer | |||
4 | 8 | LEA |
| 01, | ASCIBUF | ;Initialize | ASCII | Pointer | ||
4 | 18 | MOv |
| CX, | COUNT | ;Initialize | COUNT | flag | ||
1 | ~ | CLD |
|
|
| ;Clear | direction | |||
| 16 NEXT: | LODS | EBCBUF | ;Read | EBCDIC |
| character | |||
| 15 | XlAT | TABLE | ;Translate to | AS CI I | |||||
| 15 | STOS | ASCIBUF | ;Store | translated | byte | ||||
~ | 3 | CMP |
| AL,EOL | ;Comp?re with | terminator | ||||
~ | 19/5 | LOOPNE | NEXT | ;Loop unless AL=EOL or ex =0 | ||||||
|
| ~4 | bytes | of | code |
|
|
|
|
|
|
| 10 | lines | of | code |
|
|
|
|
|
15 |