サイトトップへ
OSASK.NET
  サイトトップへ       新掲示板(閉鎖済)   Wiki(凍結済)   旧掲示板(廃止済)   ニュース(廃止済)  
3: 2004-12-15 (水) 18:06:26 ソース 4: 2004-12-15 (水) 18:06:26 ソース
Line 8: Line 8:
*** countdown *** countdown
--C版:"cntdwnc1.c" [osa_dir2では 616バイト]+-C版:"cntdwnc1.c" [osa_dir2では 617バイト]
 /* "cntdwnc1.c":countdwnをC言語で記述した例 */  /* "cntdwnc1.c":countdwnをC言語で記述した例 */
- /*  stack:20k malloc:1k */+ /*  stack:4k malloc:1k */
 #include <guigui00.h>  #include <guigui00.h>
Line 63: Line 63:
-ASKA版:"cntdwna1.ask" [osa_dir2では 249バイト] -ASKA版:"cntdwna1.ask" [osa_dir2では 249バイト]
 /* "cntdwna1.ask":countdwnをASKAで記述した例 */  /* "cntdwna1.ask":countdwnをASKAで記述した例 */
- /*  stack:20k malloc:0k */+ /*  stack:4k malloc:0k */
 segment CODE(USE32, PARA); default(code == CODE); asmout("[FILE 'cntdwna1.ask']");  segment CODE(USE32, PARA); default(code == CODE); asmout("[FILE 'cntdwna1.ask']");
 asmout("GLOBAL _OsaskMain");  asmout("GLOBAL _OsaskMain");
Line 153: Line 153:
-nask版:"cntdwnn1.nas" [osa_dir2では バイト] -nask版:"cntdwnn1.nas" [osa_dir2では バイト]
 ; "cntdwnn1.nas":countdwnをnaskで記述した例  ; "cntdwnn1.nas":countdwnをnaskで記述した例
- ;  stack:20k malloc:0k+ ;  stack:4k malloc:0k
 [FORMAT "WCOFF"]  [FORMAT "WCOFF"]
Line 164: Line 164:
 [SECTION .text]  [SECTION .text]
     GLOBAL _OsaskMain      GLOBAL _OsaskMain
- ;;;+
 _OsaskMain:  _OsaskMain:
     MOV  EBX,init      MOV  EBX,init
     CALL 0xc7:0      CALL 0xc7:0
-     MOV  AL,0 
 .mainloop:  .mainloop:
-     MOV  EBX,putstr +     MOV  EAX,100 
-    MOV  CL,10 + .countloop
-     MOV  CH,AL +     MOV  EBX,putnum 
-     SHR  CH,1 +     LEA  ESI,[EBX+36
-     JC  .skip +     CALL setdec3
-     MOV  CL,0 +
- .skip+
-     MOV  [EBX+ 8],CL +
-     MOV  [EBX+12],CH +
-     MOV  [EBX+20],AL +
-     LEA  ESI,[EBX+42+
-     CALL setdec2+
     CALL 0xc7:0      CALL 0xc7:0
-     INC AL+     DEC EAX
     CMP  AL,16      CMP  AL,16
-     JB  .mainloop +     JNZ  .countloop 
-     MOV  EBX,sleep+     MOV  EBX,putgo
     CALL 0xc7:0      CALL 0xc7:0
 +     JMP  .mainloop
 setdec2:  setdec2:
 +     PUSH EDX
     PUSH ECX      PUSH ECX
     PUSH EAX      PUSH EAX
-     MOV CL,10 +     XOR EDX,EDX 
-     MOV  AH,0+     MOV  ECX,10 
 +     DIV  ECX
     DIV  CL      DIV  CL
     OR  EAX,'00'      OR  EAX,'00'
 +     OR  DL,'0'
     CMP  AL,'0'      CMP  AL,'0'
     JNE  .skip      JNE  .skip
     MOV  AL,' '      MOV  AL,' '
 +     CMP  AH,'0'
 +     JNE  .skip
 +     MOV  AH,' '
 .skip:  .skip:
     MOV  [ESI+0],AL      MOV  [ESI+0],AL
     MOV  [ESI+1],AH      MOV  [ESI+1],AH
 +     MOV  [ESI+2],DL
     POP  EAX      POP  EAX
     POP  ECX      POP  ECX
 +     POP  EDX
     RET      RET
- + ;;;
- ; .で始まるラベルはローカルラベル。 +
- ;; ローカルラベルは、次のグローバルラベル宣言までが有効範囲。 +
 [SECTION .data]  [SECTION .data]
     ALIGNB 4      ALIGNB 4

トップ   差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ
新着

目次
メンバー一覧


最新の20件
2016-10-01 2016-09-08
  • @MenuBar.
2016-09-07 2016-09-04 2016-08-15 2015-09-23 2014-07-30 2014-07-04 2014-02-04 2013-10-26 2013-06-21 2013-06-17 2013-06-15 2013-04-02 2013-02-09 2013-02-04 2012-12-25 2012-12-01 2012-05-28 2012-03-31

トピック一覧
一般用コメント最新
新掲示板lina
2016/9/5 20:58
SandBoxゲスト
2016/9/4 12:01
RecentDeletedlina
2015/6/2 19:29
Old-OSASK-MLlina
2014/6/29 9:14
hideyosi/メールhideyosi
2014/1/6 20:17
hideyosi/募集中lina
2013/11/8 19:56

このサイトは川合秀実から委託を受けて、OSASKコミュニティによって管理・運営されています。