_strspn.asm
来自「很少见的源码公开的msc51和z80的c编译器。」· 汇编 代码 · 共 142 行
ASM
142 行
;--------------------------------------------------------; File Created by SDCC : FreeWare ANSI-C Compiler; Version 2.3.0 Thu Sep 20 10:57:49 2001;-------------------------------------------------------- .module _strspn ;--------------------------------------------------------; Public variables in this module;-------------------------------------------------------- .globl _strspn;--------------------------------------------------------; special function registers;--------------------------------------------------------;--------------------------------------------------------; special function bits ;--------------------------------------------------------;--------------------------------------------------------; internal ram data;-------------------------------------------------------- .area _DATA;--------------------------------------------------------; overlayable items in internal ram ;-------------------------------------------------------- .area _OVERLAY;--------------------------------------------------------; indirectly addressable internal ram data;-------------------------------------------------------- .area _ISEG;--------------------------------------------------------; bit data;-------------------------------------------------------- .area _BSEG;--------------------------------------------------------; external ram data;-------------------------------------------------------- .area _XSEG;--------------------------------------------------------; global & static initialisations;-------------------------------------------------------- .area _GSINIT .area _GSFINAL .area _GSINIT;--------------------------------------------------------; Home;-------------------------------------------------------- .area _HOME .area _CODE;--------------------------------------------------------; code;-------------------------------------------------------- .area _CODE; _strspn.c 27; genLabel; genFunction; ---------------------------------; Function strspn; ---------------------------------___strspn_start:_strspn: push ix ld ix,#0 add ix,sp ld hl,#-2 add hl,sp ld sp,hl; _strspn.c 35; genAssign; AOP_STK for _strspn_count_1_1 ld -2(ix),#0x00 ld -1(ix),#0x00; genAssign; AOP_STK for ld e,4(ix) ld d,5(ix); genLabel00104$:; genPointerGet ld a,(de) ld c,a; genAssign ld b,c; genIfx xor a,a or a,c jp z,00106$; _strspn.c 36; genIpush; _saveRegsForCall: sendSetSize: 0 deInUse: 1 bcInUse: 0 deSending: 0 push de ld a,b push af inc sp; genIpush; AOP_STK for ld l,6(ix) ld h,7(ix) push hl; genCall call _strchr ld b,h ld c,l pop hl inc sp pop de; genIfx ld a,c; Rule 7: Removed redundent or or a,b jp z,00106$; _strspn.c 37; genPlus; AOP_STK for _strspn_count_1_1; genPlusIncr inc -2(ix) jp nz,00112$ inc -1(ix)00112$:; _strspn.c 40; genPlus; genPlusIncr inc de; genGoto jp 00104$; genLabel00106$:; _strspn.c 43; genRet; AOP_STK for _strspn_count_1_1 ld l,-2(ix) ld h,-1(ix); genLabel00107$:; genEndFunction ld sp,ix pop ix ret___strspn_end: .area _CODE
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?