1、 Link error :Undefined symbol “_main_” on module cos
2、
1908:0000 55 PUSH BP
1908:0001 8BEC MOV BP,SP
1908:0003 BB00B8 MOV BX,B800
1908:0006 8EC3 MOV ES,BX
1908:0008 BB9006 MOV BX,0690
1908:000B 26 ES:
1908:000C C60761 MOV BYTE PTR [BX],61
1908:000F BB00B8 MOV BX,B800
1908:0012 8EC3 MOV ES,BX
1908:0014 BB9106 MOV BX,0691
1908:0017 26 ES:
1908:0018 C60702 MOV BYTE PTR [BX],02
1908:001B 5D POP BP
1908:001C C3 RET
共541个字节
不能正返回
偏移地址是0000h
3、
1908:0000 BA6019 MOV DX,1960
1908:0003 2E CS:
1908:0004 8916F801 MOV [01F8],DX
1908:0008 B430 MOV AH,30
1908:000A CD21 INT 21
1908:000C 8B2E0200 MOV BP,[0002]
1908:0010 8B1E2C00 MOV BX,[002C]
1908:0014 8EDA MOV DS,DX
1908:0016 A39200 MOV [0092],AX
1908:0019 8C069000 MOV [0090],ES
1908:001D 891E8C00 MOV [008C],BX
1908:0021 892EAC00 MOV [00AC],BP
1908:0025 C7069600FFFF MOV WORD PTR [0096],FFFF
1908:002B E83401 CALL 0162
1908:002E C43E8A00 LES DI,[008A]
1908:0032 8BC7 MOV AX,DI
1908:0034 8BD8 MOV BX,AX
1908:0036 B9FF7F MOV CX,7FFF
1908:0039 26 ES:
1908:003A 813D3837 CMP WORD PTR [DI],3738
1908:003A 813D3837 CMP WORD PTR [DI],3738
1908:003E 7519 JNZ 0059
1908:0040 26 ES:
1908:0041 8B5502 MOV DX,[DI+02]
1908:0044 80FA3D CMP DL,3D
1908:0047 7510 JNZ 0059
1908:0049 80E6DF AND DH,DF
1908:004C FF069600 INC WORD PTR [0096]
1908:0050 80FE59 CMP DH,59
1908:0053 7504 JNZ 0059
1908:0055 FF069600 INC WORD PTR [0096]
1908:0059 F2 REPNZ
1908:005A AE SCASB
1908:005B E361 JCXZ 00BE
1908:005D 43 INC BX
1908:005E 26 ES:
1908:005F 3805 CMP [DI],AL
1908:0061 75D6 JNZ 0039
1908:0063 80CD80 OR CH,80
1908:0066 F7D9 NEG CX
1908:0068 890E8A00 MOV [008A],CX
1908:006C B90100 MOV CX,0001
1908:006F D3E3 SHL BX,CL
1908:0071 83C308 ADD BX,+08
1908:0074 83E3F8 AND BX,-08
1908:0077 891E8E00 MOV [008E],BX
1908:007B 8CDA MOV DX,DS
1908:007D 2BEA SUB BP,DX
1908:007F 8B3E9C01 MOV DI,[019C]
1908:0083 81FF0002 CMP DI,0200
1908:0087 7307 JNB 0090
1908:0089 BF0002 MOV DI,0200
1908:008C 893E9C01 MOV [019C],DI
1908:0090 81C7EC01 ADD DI,01EC
1908:0094 7228 JB 00BE
1908:0096 033E9A01 ADD DI,[019A]
1908:0096 033E9A01 ADD DI,[019A]
1908:009A 7222 JB 00BE
1908:009C B104 MOV CL,04
1908:009E D3EF SHR DI,CL
1908:00A0 47 INC DI
1908:00A1 3BEF CMP BP,DI
1908:00A3 7219 JB 00BE
1908:00A5 833E9C0100 CMP WORD PTR [019C],+00
1908:00AA 7407 JZ 00B3
1908:00AC 833E9A0100 CMP WORD PTR [019A],+00
1908:00B1 750E JNZ 00C1
1908:00B3 BF0010 MOV DI,1000
1908:00B3 BF0010 MOV DI,1000
1908:00B6 3BEF CMP BP,DI
1908:00B8 7707 JA 00C1
1908:00BA 8BFD MOV DI,BP
1908:00BC EB03 JMP 00C1
1908:00BE E92101 JMP 01E2
1908:00C1 8BDF MOV BX,DI
1908:00C3 03DA ADD BX,DX
1908:00C5 891EA400 MOV [00A4],BX
1908:00C9 891EA800 MOV [00A8],BX
1908:00CD A19000 MOV AX,[0090]
1908:00D0 2BD8 SUB BX,AX
1908:00D2 8EC0 MOV ES,AX
1908:00D4 B44A MOV AH,4A
1908:00D6 57 PUSH DI
1908:00D7 CD21 INT 21
1908:00D9 5F POP DI
1908:00DA D3E7 SHL DI,CL
1908:00DC FA CLI
1908:00DD 8ED2 MOV SS,DX
1908:00DF 8BE7 MOV SP,DI
1908:00E1 FB STI
1908:00E2 33C0 XOR AX,AX
1908:00E4 2E CS:
1908:00E5 8E06F801 MOV ES,[01F8]
1908:00E9 BFA601 MOV DI,01A6
1908:00EC B9EC01 MOV CX,01EC
1908:00EF 2BCF SUB CX,DI
1908:00F1 F3 REPZ
1908:00F2 AA STOSB
1908:00F3 0E PUSH CS
1908:00F4 FF16A001 CALL [01A0]
1908:00F8 E85201 CALL 024D
1908:00FB E83A02 CALL 0338
1908:00FE B400 MOV AH,00
1908:0100 CD1A INT 1A
1908:0102 89169800 MOV [0098],DX
1908:0106 890E9A00 MOV [009A],CX
1908:010A FF16A401 CALL [01A4]
1908:010E FF368800 PUSH [0088]
1908:0112 FF368600 PUSH [0086]
1908:0116 FF368400 PUSH [0084]
1908:011A E8DD00 CALL 01FA ;调用主函数
1908:011D 50 PUSH AX
1908:011E E8F700 CALL 0218
1908:0121 2E CS:
1908:0122 8E1EF801 MOV DS,[01F8]
1908:0126 E87C00 CALL 01A5
1908:0129 0E PUSH CS
1908:012A FF16A201 CALL [01A2]
1908:012E 33C0 XOR AX,AX
1908:0130 8BF0 MOV SI,AX
1908:0132 B92F00 MOV CX,002F
1908:0135 90 NOP
1908:0136 FC CLD
1908:0137 0204 ADD AL,[SI]
1908:0139 80D400 ADC AH,00
1908:013C 46 INC SI
1908:013D E2F8 LOOP 0137
1908:013F 2D370D SUB AX,0D37
1908:0142 90 NOP
1908:0143 740A JZ 014F
1908:0145 B91900 MOV CX,0019
1908:0148 90 NOP
1908:0149 BA2F00 MOV DX,002F
1908:014C E88B00 CALL 01DA
1908:014F 8BEC MOV BP,SP
1908:0151 B44C MOV AH,4C
1908:0153 8A4602 MOV AL,[BP+02]
1908:0156 CD21 INT 21
文件大小4.21K
可以正常返回
Main函数和f函数汇编代码没有什么区别
4、
1908:011A E8DD00 CALL 01FA ;调用主函数
返回:
1908:0151 B44C MOV AH,4C
1908:0153 8A4602 MOV AL,[BP+02]
1908:0156 CD21 INT 21
6、
LINK : warning L2029: Unresolved externals:
_main in file(s):
C0S.OBJ(C0S)
__stklen in file(s):
C0S.OBJ(C0S)
__setenvp in file(s):
C0S.OBJ(C0S)
__setargv in file(s):
C0S.OBJ(C0S)
_exit in file(s):
C0S.OBJ(C0S)
__heaplen in file(s):
C0S.OBJ(C0S)
There were 6 errors detected
C0s.exe汇编代码如下
1908:0000 BA2819 MOV DX,1928
1908:0003 2E CS:
1908:0004 8916F801 MOV [01F8],DX
1908:0008 B430 MOV AH,30
1908:000A CD21 INT 21
1908:000C 8B2E0200 MOV BP,[0002]
1908:0010 8B1E2C00 MOV BX,[002C]
1908:0014 8EDA MOV DS,DX
1908:0016 A39200 MOV [0092],AX
1908:0019 8C069000 MOV [0090],ES
1908:001D 891E8C00 MOV [008C],BX
1908:0021 892EAC00 MOV [00AC],BP
1908:0025 C7069600FFFF MOV WORD PTR [0096],FFFF
1908:002B E83401 CALL 0162
1908:002E C43E8A00 LES DI,[008A]
1908:0032 8BC7 MOV AX,DI
1908:0034 8BD8 MOV BX,AX
1908:0036 B9FF7F MOV CX,7FFF
1908:0039 26 ES:
1908:003A 813D3837 CMP WORD PTR [DI],3738
1908:003E 7519 JNZ 0059
1908:0040 26 ES:
1908:0041 8B5502 MOV DX,[DI+02]
1908:0044 80FA3D CMP DL,3D
1908:0047 7510 JNZ 0059
1908:0049 80E6DF AND DH,DF
1908:004C FF069600 INC WORD PTR [0096]
1908:0050 80FE59 CMP DH,59
1908:0053 7504 JNZ 0059
1908:0055 FF069600 INC WORD PTR [0096]
1908:0059 F2 REPNZ
1908:005A AE SCASB
1908:005B E361 JCXZ 00BE
1908:005D 43 INC BX
1908:005E 26 ES:
1908:005F 3805 CMP [DI],AL
1908:0061 75D6 JNZ 0039
1908:0063 80CD80 OR CH,80
1908:0066 F7D9 NEG CX
1908:0068 890E8A00 MOV [008A],CX
1908:006C B90100 MOV CX,0001
1908:006F D3E3 SHL BX,CL
1908:0071 83C308 ADD BX,+08
1908:0074 83E3F8 AND BX,-08
1908:0077 891E8E00 MOV [008E],BX
1908:007B 8CDA MOV DX,DS
1908:007D 2BEA SUB BP,DX
1908:007F 8B3E0000 MOV DI,[0000]
1908:0083 81FF0002 CMP DI,0200
1908:0087 7307 JNB 0090
1908:0089 BF0002 MOV DI,0200
1908:008C 893E0000 MOV [0000],DI
1908:0090 81C79A01 ADD DI,019A
1908:0094 7228 JB 00BE
1908:0096 033E0000 ADD DI,[0000]
1908:009A 7222 JB 00BE
1908:009C B104 MOV CL,04
1908:009E D3EF SHR DI,CL
1908:00A0 47 INC DI
1908:00A1 3BEF CMP BP,DI
1908:00A3 7219 JB 00BE
1908:00A5 833E000000 CMP WORD PTR [0000],+00
1908:00AA 7407 JZ 00B3
1908:00AC 833E000000 CMP WORD PTR [0000],+00
1908:00B1 750E JNZ 00C1
1908:00B3 BF0010 MOV DI,1000
1908:00B6 3BEF CMP BP,DI
1908:00B8 7707 JA 00C1
1908:00BA 8BFD MOV DI,BP
1908:00BC EB03 JMP 00C1
1908:00BE E92101 JMP 01E2
1908:00C1 8BDF MOV BX,DI
1908:00C3 03DA ADD BX,DX
1908:00C5 891EA400 MOV [00A4],BX
1908:00C9 891EA800 MOV [00A8],BX
1908:00CD A19000 MOV AX,[0090]
1908:00D0 2BD8 SUB BX,AX
1908:00D2 8EC0 MOV ES,AX
1908:00D4 B44A MOV AH,4A
1908:00D6 57 PUSH DI
1908:00D7 CD21 INT 21
1908:00D9 5F POP DI
1908:00DA D3E7 SHL DI,CL
1908:00DC FA CLI
1908:00DD 8ED2 MOV SS,DX
1908:00DF 8BE7 MOV SP,DI
1908:00E1 FB STI
1908:00E2 33C0 XOR AX,AX
1908:00E4 2E CS:
1908:00E5 8E06F801 MOV ES,[01F8]
1908:00E9 BF9A01 MOV DI,019A
1908:00EC B99A01 MOV CX,019A
1908:00EF 2BCF SUB CX,DI
1908:00F1 F3 REPZ
1908:00F2 AA STOSB
1908:00F3 0E PUSH CS
1908:00F4 FF169401 CALL [0194]
1908:00F8 E80000 CALL 00FB
1908:00FB E80000 CALL 00FE
1908:00FE B400 MOV AH,00
1908:0100 CD1A INT 1A
1908:0102 89169800 MOV [0098],DX
1908:0106 890E9A00 MOV [009A],CX
1908:010A FF169801 CALL [0198]
1908:010E FF368800 PUSH [0088]
1908:0112 FF368600 PUSH [0086]
1908:0116 FF368400 PUSH [0084]
1908:011A E80000 CALL 011D
1908:011D 50 PUSH AX
1908:011E E80000 CALL 0121
1908:0121 2E CS:
1908:0122 8E1EF801 MOV DS,[01F8]
1908:0126 E87C00 CALL 01A5
1908:0129 0E PUSH CS
1908:012A FF169601 CALL [0196]
1908:012E 33C0 XOR AX,AX
1908:0130 8BF0 MOV SI,AX
1908:0132 B92F00 MOV CX,002F
1908:0135 90 NOP
1908:0136 FC CLD
1908:0137 0204 ADD AL,[SI]
1908:0139 80D400 ADC AH,00
1908:013C 46 INC SI
1908:013D E2F8 LOOP 0137
1908:013F 2D370D SUB AX,0D37
1908:0142 90 NOP
1908:0143 740A JZ 014F
1908:0145 B91900 MOV CX,0019
1908:0148 90 NOP
1908:0149 BA2F00 MOV DX,002F
1908:014C E88B00 CALL 01DA
1908:014F 8BEC MOV BP,SP
1908:0151 B44C MOV AH,4C
1908:0153 8A4602 MOV AL,[BP+02]
1908:0156 CD21 INT 21
几乎是一样的
调用主函数数指令之后的10条指令
M.exe
1908:011D 50 PUSH AX
1908:011E E8F700 CALL 0218
1908:0121 2E CS:
1908:0122 8E1EF801 MOV DS,[01F8]
1908:0126 E87C00 CALL 01A5
1908:0129 0E PUSH CS
1908:012A FF16A201 CALL [01A2]
1908:012E 33C0 XOR AX,AX
1908:0130 8BF0 MOV SI,AX
1908:0132 B92F00 MOV CX,002F
C0s.exe
1908:011D 50 PUSH AX
1908:011E E80000 CALL 0121
1908:0121 2E CS:
1908:0122 8E1EF801 MOV DS,[01F8]
1908:0126 E87C00 CALL 01A5
1908:0129 0E PUSH CS
1908:012A FF169601 CALL [0196]
1908:012E 33C0 XOR AX,AX
1908:0130 8BF0 MOV SI,AX
1908:0132 B92F00 MOV CX,002F
9、
F.exe汇编代码
1899:0000 B89118 MOV AX,1891
1899:0003 8ED8 MOV DS,AX
1899:0005 8ED0 MOV SS,AX
1899:0007 BC8000 MOV SP,0080
1899:000A E80500 CALL 0012
1899:000D B8004C MOV AX,4C00
1899:0010 CD21 INT 21
主函数:
1899:0012 55 PUSH BP
1899:0013 8BEC MOV BP,SP
1899:0015 BB0002 MOV BX,0200
1899:0018 8EC3 MOV ES,BX
1899:001A 33DB XOR BX,BX
1899:001C 26 ES:
1899:001D C7070000 MOV WORD PTR [BX],0000
1899:0021 BB0002 MOV BX,0200
1899:0024 8EC3 MOV ES,BX
1899:0026 33DB XOR BX,BX
1899:0028 26 ES:
1899:0029 8B1F MOV BX,[BX]
1899:002B C6470A00 MOV BYTE PTR [BX+0A],00
1899:002F EB3C JMP 006D
1899:0031 BB0002 MOV BX,0200
1899:0034 8EC3 MOV ES,BX
1899:0036 33DB XOR BX,BX
1899:0038 26 ES:
1899:0039 8B1F MOV BX,[BX]
1899:003B 8A470A MOV AL,[BX+0A]
1899:003E 0461 ADD AL,61
1899:0040 BB0002 MOV BX,0200
1899:0043 8EC3 MOV ES,BX
1899:0045 33DB XOR BX,BX
1899:0047 26 ES:
1899:0048 8B1F MOV BX,[BX]
1899:004A 50 PUSH AX
1899:004B 53 PUSH BX
1899:004C BB0002 MOV BX,0200
1899:004F 8EC3 MOV ES,BX
1899:0051 33DB XOR BX,BX
1899:0053 26 ES:
1899:0054 8B1F MOV BX,[BX]
1899:0056 8A470A MOV AL,[BX+0A]
1899:0059 98 CBW
1899:005A 5B POP BX
1899:005B 03D8 ADD BX,AX
1899:005D 58 POP AX
1899:005E 8807 MOV [BX],AL
1899:0060 BB0002 MOV BX,0200
1899:0063 8EC3 MOV ES,BX
1899:0065 33DB XOR BX,BX
1899:0067 26 ES:
1899:0068 8B1F MOV BX,[BX]
1899:006A FE470A INC BYTE PTR [BX+0A]
1899:006D BB0002 MOV BX,0200
1899:0070 8EC3 MOV ES,BX
1899:0072 33DB XOR BX,BX
1899:0074 26 ES:
1899:0075 8B1F MOV BX,[BX]
1899:0077 807F0A08 CMP BYTE PTR [BX+0A],08
1899:007B 75B4 JNZ 0031
1899:007D 5D POP BP
1899:007E C3 RET
- [cutebe] 相当牛,这个苦思冥想也值了。^_^ 11/30 00:00
- [parse] 如果忽略消息循环,那么操作系统加载的程序很快就执行完了,就像DOS程序一闪而过,所以CPU会空闲下来 06/30 09:04
- [游客] 楼主好厉害,挺一下! 01/19 08:43
- [游客] 很不错。 01/04 18:36
- [chinatree] 潜力贴留名,沙发。 11/08 12:58
- [youthangel] 恩,这次对了 10/30 18:56
- [fpamc] mov bx,18 在这条指令的上边是不是要加一条sub dx,dx? 10/30 10:03
- [fpamc] 对的 10/27 11:19
- [fpamc] 对的 10/27 09:00
- [fpamc] 哦,对不起,看错了。实验13也有一个7ch中断 10/27 08:52
- [游客] 现在急需一个汇编大作业。。。。。。可以么。。。。。如果今天之内看见留言 就加 1765496715 12/28 16:52
- [youthangel] 这算是对我学习的鼓励吗?谢谢!咱们这样交流就可以了 10/11 15:48
- [fpamc] 多日观察,你的学习积极性挺高的。可以来我们群了。群号:75916434 10/11 10:58