オラはボケちまっただあ〜



近頃オラはめっきりボケちまって全然ダメだあ〜。
だけど、もちっとましな頃もあったでよ。

あんた方に理解出来ろとは言わない。
あんた方に解析出来ろとは言わない。
何のために何やってるかだけでいい。
知性とコードの腕に自信のあるPGが万一いたら読んでみない?
何のために何やってるかだけでいい、わかる?
特殊知識のいるコードじゃない、ごく一般常識のコードだよ。
ひっかけじゃない、ちゃんと動いてるEXEのサブルーチンだよ。


 ; ? ????? ? ? ?????
 ; in stk_a0,a1 ?????????
 ;   stk_a2,a3 ???????
 ; out stk_a4,a5 ????????
 ;   stk_a6,a7 ?????????
 ; ??????? = 0 ---> c
 ;         > 0 ---> nc
 ; ???????     ---> z
 ; not ??????? ---> nz

???_?? proc far

 push si
 push di
 mov di,offset stk_a4
 xor ax,ax
 stosw
 stosw
 stosw
 stosw
 mov di,stk_a0
 mov si,stk_a1
 mov ax,stk_a2
 mov dx,stk_a3

 or dx,dx
 jz _4

 mov cx,32
_0: shl di,1
 rcl si,1
 jc _1
 loop _0
 jmp _5
_1: rcr si,1
 rcr di,1
 mov stk_a4,di
 mov stk_a5,si
 xor di,di
 xor si,si
_2: shl stk_a4,1
 rcl stk_a5,1
 rcl di,1
 rcl si,1
 cmp si,dx
 jb _3
 ja @f
 cmp di,ax
 jb _3
@@: sub di,ax
 sbb si,dx
 inc stk_a4
_3: loop _2
 mov stk_a6,di
 mov stk_a7,si
 jmp _5

_4: or ax,ax
 jz _6

 mov bx,ax
 mov ax,si
 div bx
 mov stk_a5,ax
 mov ax,di
 div bx
 mov stk_a4,ax
 mov stk_a6,dx
_5: cmp stk_a6,0
 ja @f
 cmp stk_a7,0
@@: pop di
 pop si
 clc
 ret

_6: pop di
 pop si
 stc
 ret

???_?? endp