lexcmp.mac

来自「这是一个8086和8088系列机的编译器的源码」· MAC 代码 · 共 115 行

MAC
115
字号
 INCLUDE PROLOG.H
_CC1:
 PUBLIC _lexcmp
_lexcmp:
_CC3:
 MOV BX,4
 ADD BX,SP
 MOV BX,[BX]
 MOV AL,[BX]
 CBW
 MOV BX,AX
 PUSH BX  ;
 MOV BX,4
 ADD BX,SP
 MOV BX,[BX]
 MOV AL,[BX]
 CBW
 MOV BX,AX
 PUSH BX  ;
 CALL _lexorder
 ADD SP,4
 OR BX,BX
 JZ $+5
 JMP _CC4
 MOV BX,4
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 INC BX
 MOV SI,DX
 MOV [SI],BX
 DEC BX
 MOV AL,[BX]
 CBW
 MOV BX,AX
 OR BX,BX
 JNZ $+5
 JMP _CC5
 MOV BX,2
 ADD BX,SP
 MOV DX,BX
 MOV BX,[BX]
 INC BX
 MOV SI,DX
 MOV [SI],BX
 JMP _CC6
_CC5:
 MOV BX,0
 RET
_CC6:
 JMP _CC3
_CC4:
 MOV BX,4
 ADD BX,SP
 MOV BX,[BX]
 MOV AL,[BX]
 CBW
 MOV BX,AX
 PUSH BX  ;
 MOV BX,4
 ADD BX,SP
 MOV BX,[BX]
 MOV AL,[BX]
 CBW
 MOV BX,AX
 PUSH BX  ;
 CALL _lexorder
 ADD SP,4
 RET
 PUBLIC _Ulex
_Ulex DB 0,1,2,3,4,5,6,7,8,9
 DB 10,11,12,13,14,15,16,17,18,19
 DB 20,21,22,23,24,25,26,27,28,29
 DB 30,31,32,33,34,35,36,37,38,39
 DB 40,41,42,43,44,45,46,47,65,66
 DB 67,68,69,70,71,72,73,74,48,49
 DB 50,51,52,53,54,75,76,77,78,79
 DB 80,81,82,83,84,85,86,87,88,89
 DB 90,91,92,93,94,95,96,97,98,99
 DB 100,55,56,57,58,59,60,75,76,77
 DB 78,79,80,81,82,83,84,85,86,87
 DB 88,89,90,91,92,93,94,95,96,97
 DB 98,99,100,61,62,63,64,101
 PUBLIC _lexorder
_lexorder:
 MOV BX,OFFSET _Ulex
 XCHG DX,BX
 MOV BX,4
 ADD BX,SP
 MOV AL,[BX]
 CBW
 MOV BX,AX
 ADD BX,DX
 MOV AL,[BX]
 CBW
 MOV BX,AX
 PUSH BX  ;
 MOV BX,OFFSET _Ulex
 XCHG DX,BX
 MOV BX,4
 ADD BX,SP
 MOV AL,[BX]
 CBW
 MOV BX,AX
 ADD BX,DX
 MOV AL,[BX]
 CBW
 MOV BX,AX
 POP DX
 SUB DX,BX
 MOV BX,DX
 RET
 INCLUDE EPILOG.H
 END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?