|
- .版本 2
- .支持库 spec
- .程序集 程序集1
- .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
- _临时子程序 () ' 在初始化代码执行完毕后调用测试代码
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 _临时子程序
- .局部变量 个位数, 整数型
- .局部变量 十位数, 整数型
- .局部变量 百位数, 整数型
- .局部变量 A, 整数型
- .局部变量 B, 字节型
- ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
- .变量循环首 (0, 255, 1, A)
- 取个十百位数_易源码 (A, 个位数, 十位数, 百位数)
- 检查 (A = 百位数 × 100 + 十位数 × 10 + 个位数)
- 取个十百位数_置入代码 (A, 个位数, 十位数, 百位数)
- 检查 (A = 百位数 × 100 + 十位数 × 10 + 个位数)
- 调试输出 (A, 百位数, 十位数, 个位数)
- .变量循环尾 ()
- .子程序 取个十百位数_易源码, , 公开
- .参数 AL, 字节型, , 字节
- .参数 AH, 字节型, 参考, 个位数
- .参数 BL, 字节型, 参考, 十位数
- .参数 BH, 字节型, 参考, 百位数
- .局部变量 CL, 整数型
- .局部变量 CH, 字节型
- .局部变量 DL, 字节型
- DL = AL
- AH = 0
- BL = 0
- BH = 0
- .判断开始 (AL ≥ 0 且 AL ≤ 9)
- AH = AL
- 返回 ()
- .判断 (AL ≥ 10 且 AL ≤ 99)
- CH = 9
- CL = 90
- .判断循环首 (CL ≥ 10)
- .如果真 (AL ≥ CL)
- AH = AL
- AH = AH - CL
- BL = CH
- 返回 ()
- .如果真结束
- CH = CH - 1
- CL = CL - 10
- .判断循环尾 ()
- .判断 (AL ≥ 100 且 AL ≤ 255)
- CH = 2
- CL = 200
- .判断循环首 (CL ≥ 100)
- .如果真 (AL ≥ CL)
- BH = CH
- CH = 9
- AL = AL - CL
- CL = 90
- .判断循环首 (CL ≥ 0)
- .如果真 (AL ≥ CL)
- AH = AL
- AH = AH - CL
- BL = CH
- 返回 ()
- .如果真结束
- CH = CH - 1
- CL = CL - 10
- .判断循环尾 ()
- .如果真结束
- CH = CH - 1
- CL = CL - 100
- .判断循环尾 ()
- .默认
- .判断结束
- .子程序 取个十百位数_置入代码, , 公开
- .参数 字节, 字节型, , 0~255
- .参数 个位数, 字节型, 参考, 0~9
- .参数 十位数, 字节型, 参考, 0~9
- .参数 百位数, 字节型, 参考, 0~2
- 置入代码 ({ 96, 138, 69, 8, 232, 20, 0, 0, 0, 139, 77, 12, 136, 33, 139, 77, 16, 136, 25, 139, 77, 20, 136, 57, 97, 201, 194, 16, 0, 81, 82, 138, 208, 50, 228, 50, 219, 50, 255, 60, 0, 114, 10, 60, 9, 119, 6, 138, 224, 235, 100, 235, 98, 60, 10, 114, 34, 60, 99, 119, 30, 181, 9, 177, 90, 235, 17, 56, 200, 114, 8, 138, 224, 42, 225, 138, 221, 235, 72, 254, 205, 128, 233, 10, 128, 249, 10, 115, 234, 235, 60, 60, 100, 114, 56, 60, 255, 119, 52, 181, 2, 177, 200, 235, 41, 56, 200, 114, 32, 138, 253, 181, 9, 42, 193, 177, 90, 235, 17, 56, 200, 114, 8, 138, 224, 42, 225, 138, 221, 235, 20, 254, 205, 128, 233, 10, 128, 249, 0, 115, 234, 254, 205, 128, 233, 100, 128, 249, 100, 115, 210, 138, 194, 90, 89, 195 })
- ' pushad
- ' mov al,[ebp+8]
- ' call GET_BYTE_UTH
- ' mov ecx,[ebp+12]
- ' mov [ecx],ah
- ' mov ecx,[ebp+16]
- ' mov [ecx],bl
- ' mov ecx,[ebp+20]
- ' mov [ecx],bh
- ' popad
- ' leave
- ' retn 16
- ' GET_BYTE_UTH:
- ' push ecx
- ' push edx
- ' mov dl,al
- ' xor ah,ah
- ' xor bl,bl
- ' xor bh,bh
- ' .if al >= 0 && al <= 9
- ' mov ah,al
- ' jmp GBU_END
- ' .elseif al >= 10 && al <= 99
- ' mov ch,9
- ' mov cl,90
- ' .while cl >= 10
- ' .if al >= cl
- ' mov ah,al
- ' sub ah,cl
- ' mov bl,ch
- ' jmp GBU_END
- ' .endif
- ' dec ch
- ' sub cl,10
- ' .endw
- ' .elseif al >= 100 && al <=255
- ' mov ch,2
- ' mov cl,200
- ' .while cl >= 100
- ' .if al >= cl
- ' mov bh,ch
- ' mov ch,9
- ' sub al,cl
- ' mov cl,90
- ' .while cl >= 0
- ' .if al >= cl
- ' mov ah,al
- ' sub ah,cl
- ' mov bl,ch
- ' jmp GBU_END
- ' .endif
- ' dec ch
- ' sub cl,10
- ' .endw
- ' .endif
- ' dec ch
- ' sub cl,100
- ' .endw
- ' .endif
- ' GBU_END:
- ' mov al,dl
- ' pop edx
- ' pop ecx
- ' ret
复制代码 |
|