'asm' 카테고리의 다른 글
NASM, MASM 차이 (1) | 2010.08.13 |
---|---|
About link errors (0) | 2010.07.15 |
segment:offset (0) | 2010.07.07 |
NASM, MASM 차이 (1) | 2010.08.13 |
---|---|
About link errors (0) | 2010.07.15 |
segment:offset (0) | 2010.07.07 |
MASM은 MS사에서 만든 어셈블러입니다.
NASM은 오픈소스로 만들어진 어셈블러입니다.
MASM와 NASM은 Intel 문법을 따르지만, directive에 있어서는 조금 차이가 납니다.
MASM은 윈도우 환경에서만 사용될 수 있으나, NASM은 다양한 환경에서 사용될 수 있습니다.
또한, 주소 지정 방식에서도 조금 차이가 납니다.
뭘 공부해야 하느냐는 목적에 따라 사용 하면 됩니다.
1. 윈도우, 리눅스 환경 및 독자 OS 개발에 사용하고 싶다면 NASM을 추천합니다.
참고로, Visual Studio에서 NASM 문법을 사용해서 C언어와 함께 개발하려면 독립적인 OBJECT 파일로
만들어서 링크해야 합니다. 즉, Visual Studio에서 인라인 어셈블은 안됩니다.
2. WinDebug 등의 디버거를 이용해서 윈도우용 프로그램을 리버스 엔지니어링하려면 아무래도 MASM 문법
에 익숙한 것이 낫습니다. 이런 경우에는 MASM을 공부하세요.
또한, MS에서 만든 것이다 보니 Visual Studio에서 C언어와 함께 인라인 어셈블이 가능합니다.
어셈을 시작하며 (0) | 2010.08.27 |
---|---|
About link errors (0) | 2010.07.15 |
segment:offset (0) | 2010.07.07 |
Linker Tools Error LNK1190
invalid fixup found, type type
The object file has become corrupted. Recompile.
Linker Tools Error LNK1194
cannot delay-load dll name due to import of data symbol symbol name; relink without /DELAYLOAD:dll name
You cannot delay load a DLL if data is imported from it.
Linker Tools Error LNK1195
target machine "machine" requires "option"
Add the required option.
Linker Tools Error LNK1196
invalid or corrupt import object: unknown version
The import library has become corrupted. Rebuild the library.
Linker Tools Error LNK1197
invalid or corrupt import object: unknown type
The import library has become corrupted. Rebuild the library.
Linker Tools Error LNK1198
invalid or corrupt import object: unknown name type
The import library has become corrupted. Rebuild the library.
Linker Tools Error LNK1199
invalid or corrupt import object: non-zero reserved fields
The import library has become corrupted. Rebuild the library.
Linker Tools Error LNK1200
error reading program database "filename"
The given program database (PDB) could not be read, probably because it is corrupted. If filename is the PDB for an object file, recompile the object file; use the /debug:full and /pdbfile options. If filename is the PDB for the main output file and this error occurred during an incremental link, delete the PDB and relink.
Linker Tools Error LNK1201
error writing to program database "filename"; check for insufficient disk space
LINK could not write to the program database (PDB) for the output file. One of the following may be a cause:
Linker Tools Error LNK1202
"filename" missing debugging information for referencing module
The given program database (PDB) for an object file was invalid. Recompile the object file; use CL's /Zi option.
Linker Tools Error LNK1203
"filename" missing current debugging information for referencing module
The given program database (PDB) for an object file was invalid. Recompile the object file; use CL's /Zi option.
Linker Tools Error LNK1204
"filename" compiled /Yc /Yu /Z7; cannot create PDB; recompile with /Zi
Multilayered program databases (PDBs) are not supported in combination with old-style debugging information. Recompile using CL's /Zi option.
Linker Tools Error LNK1206
cannot overwrite Visual C++ 1.0 PDB "filename"; delete and rebuild
This version of LINK cannot write to an existing program database (PDB) created using older versions of the visual development environment. Delete filename and rebuild.
Linker Tools Error LNK1207
incompatible PDB format in "filename"; delete and rebuild
This version of LINK cannot write to the existing program database (PDB). Delete filename and rebuild.
Linker Tools Error LNK1209
program database "filename" differs from previous link; relink or rebuild
The given program database (PDB) is invalid and possibly corrupt. Relink. If filename is also the PDB for an object file, recompile to recreate the PDB.
Linker Tools Error LNK1210
insufficient memory for incremental link; relink with /INCREMENTAL:NO
There was not enough virtual memory available for LINK to create the incremental status (.ILK) file.
Linker Tools Error LNK1211
precompiled type information not found; "filename" not linked or overwritten
The given object file, compiled with /Yc, either was not specified in the LINK command or was overwritten.
Linker Tools Error LNK1212
error opening program database; file is in use
The PDB is already in use by another application.
Linker Tools Error LNK1213
unexpected import object encountered
The import library has become corrupted. Rebuild the library.
Linker Tools Error LNK1221
a subsystem can't be inferred and must be defined
The linker does not have enough information to infer which subsystem you will target your application. To fix this error, use the /SUBSYSTEM option.
Linker Tools Error LNK1561
entry point must be defined
The symbol specified by the /ENTRY option is not defined.
Linker Tools Error LNK1581
corrupted object or old compiler (bad Pcode entry point)
Your object file contained a bad entry point. The object file is probably corrupt. See Corrupt Object File for more information.
[출처] Link Error 에 관한 모든것|작성자 듀얼릿트
어셈을 시작하며 (0) | 2010.08.27 |
---|---|
NASM, MASM 차이 (1) | 2010.08.13 |
segment:offset (0) | 2010.07.07 |
어셈을 시작하며 (0) | 2010.08.27 |
---|---|
NASM, MASM 차이 (1) | 2010.08.13 |
About link errors (0) | 2010.07.15 |