Turbo Assembler Version 4.0 18/11/04 00:34:07 Page 1 timer.asm 1 .286 2 $comm macro name,dist,size,count 3 comm dist name[size]:BYTE:count 4 endm 5 ?debug S "timer.c" 6 ?debug C E9220472310774696D65722E63 7 ?debug C E920085C1616443A5C545552424F5C494E435C70726F636573732E+ 8 ?debug C 68 9 ?debug C E920085C1612443A5C545552424F5C494E435C646F732E68 10 0000 TIMER_TEXT segment byte public 'CODE' 11 0000 TIMER_TEXT ends 12 DGROUP group _DATA,_BSS 13 assume cs:TIMER_TEXT,ds:DGROUP 14 0000 _DATA segment word public 'DATA' 15 0000 d@ label byte 16 0000 d@w label word 17 0000 _DATA ends 18 0000 _BSS segment word public 'BSS' 19 0000 b@ label byte 20 0000 b@w label word 21 0000 _BSS ends 22 0000 TIMER_TEXT segment byte public 'CODE' 23 assume cs:TIMER_TEXT 24 0000 _us_delay proc far 25 0000 55 push bp 26 0001 8B EC mov bp,sp 27 0003 83 EC 04 sub sp,4 28 0006 8B 46 06 mov ax,word ptr [bp+6] 29 0009 BA 000C mov dx,12 30 000C F7 EA imul dx 31 000E BB 000A mov bx,10 32 0011 33 D2 xor dx,dx 33 0013 F7 F3 div bx 34 0015 89 46 06 mov word ptr [bp+6],ax 35 0018 C1 E8 08 shr ax,8 36 001B 89 46 FE mov word ptr [bp-2],ax 37 001E 8B 46 06 mov ax,word ptr [bp+6] 38 0021 25 00FF and ax,255 39 0024 89 46 FC mov word ptr [bp-4],ax 40 0027 9C pushf 41 0028 FA cli 42 0029 E4 61 in al,061H 43 002B 24 FD and al,0FDH 44 002D 0C 01 or al,1 45 002F E6 61 out 061H,al 46 0031 B0 B0 mov al,0B0H 47 0033 E6 43 out 043H,al 48 0035 E4 61 in al,061H 49 0037 8A 46 06 mov al,[bp+6] 50 out 042H),al **Error** timer.asm(58) Too few operands to instruction *Warning* timer.asm(58) Argument needs type override 51 003A E4 61 in al,061H 52 003C 8A 46 07 mov al,[bp+6]+1 53 003F E6 42 out 042H,al 54 0041 9D popf 55 0042 @1@410: Turbo Assembler Version 4.0 18/11/04 00:34:07 Page 2 timer.asm 56 0042 B0 80 mov al,080H 57 0044 E6 43 out 043H,al 58 0046 E4 61 in al,061H 59 0048 E4 42 in al,042H 60 004A E4 61 in al,061H 61 004C E4 42 in al,042H 62 004E D0 E0 shl al,1 63 0050 73 F0 jnc short @1@410 64 0052 9C pushf 65 0053 FA cli 66 0054 B0 B6 mov al,0B6H 67 0056 E6 43 out 043H,al 68 0058 E4 61 in al,061H 69 005A 24 FC and al,0FCH 70 005C E6 61 out 061H,al 71 005E 9D popf 72 005F C9 leave 73 0060 CB ret 74 0061 _us_delay endp 75 ?debug C E9 76 0061 TIMER_TEXT ends 77 0000 _DATA segment word public 'DATA' 78 0000 s@ label byte 79 0000 _DATA ends 80 0061 TIMER_TEXT segment byte public 'CODE' 81 0061 TIMER_TEXT ends 82 public _us_delay 83 end Turbo Assembler Version 4.0 18/11/04 00:34:07 Page 3 Symbol Table Symbol Name Type Value ??date Text "18/11/04" ??filename Text "timer " ??time Text "00:34:07" ??version Number 0400 @1@410 Near TIMER_TEXT:0042 @Cpu Text 0707H @FileName Text timer @WordSize Text 2 @curseg Text TIMER_TEXT _us_delay Far TIMER_TEXT:0000 b@ Byte _BSS:0000 b@w Word _BSS:0000 d@ Byte _DATA:0000 d@w Word _DATA:0000 s@ Byte _DATA:0000 Macro Name $comm Groups & Segments Bit Size Align Combine Class DGROUP Group _BSS 16 0000 Word Public BSS _DATA 16 0000 Word Public DATA TIMER_TEXT 16 0061 Byte Public CODE Turbo Assembler Version 4.0 18/11/04 00:34:07 Page 4 Error Summary **Error** timer.asm(58) Too few operands to instruction *Warning* timer.asm(58) Argument needs type override