- 复习上一章节
- 编译过程
- 1.==预编译==阶段
- 2. ==编译==阶段
- 3. ==汇编==阶段
- 4. ==链接==阶段
- 源码
- hello.c
- hello.i
- hello.s
- hello.o
- 门:让电流通过或截至
- 设计CPU的秘诀:使用门规划了信号在CPU输入端到输出端之间的传播路径,使得输出成为输入的数学解。
- 使用CPU的方法:向CPU输入端1 (一组门的输入端)写电平信号2,CPU运算后,从CPU的输出端(一组门的输出端)读电平信号。
为什么要编译?
因为CPU能够直接执行的是机器码3,需要把c代码转换成机器码。
现在我的硬盘上有一个c文件 hello.c
存放了这样一段源码
#includeint main() { printf("hello,worldn"); return 0; }
要执行这样一段程序,需要一下几个步骤:
1.预编译阶段这一时期编译器完成头文件插入,宏替换,生成文件hello.i
hello.i中的内容依然是c代码。
源码已粘贴到文末(足有800多行)
#开头的语句是预编译指令
#include2. 编译阶段// 就是一句预编译指令:告诉编译器在预编译时期使用stdio.h中的内容粘贴到此处
编译器将hello.i中的c代码翻译成汇编代码,生成汇编文件hello.s
源码已粘贴到文末
//汇编代码 .file "main.c" .text .def __main; .scl 2; .type 32; .endef .section .rdata,"dr" .LC0: .ascii "Hello, World! " .text .globl main .def main; .scl 2; .type 32; .endef .seh_proc main main: pushq %rbp .seh_pushreg %rbp movq %rsp, %rbp .seh_setframe %rbp, 0 subq $32, %rsp .seh_stackalloc 32 .seh_endprologue call __main leaq .LC0(%rip), %rcx call puts movl $0, %eax addq $32, %rsp popq %rbp ret .seh_endproc .ident "GCC: (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0" .def puts; .scl 2; .type 32; .endef3. 汇编阶段
编译器将汇编代码翻译成机器码,生成机器码/二进制文件hello.o
为什是二进制文件呢?
个人理解4:
因为我们的计算机的的输出输出端口只有两个状态,对应的机器码也是两个状态,就是二进制的咯。
hello.o中并不包含程序运行所需的所有二进制文件,因为我们在源码中使用了printf函数,而我们的源码中并不包含printf函数的实现。
printf函数的声明在stdio.h中。预编译期间stdio.h的内容被包含到hello.c中,因此printf函数的声明也被包含到hello.c中,所以编译hello.c时才没有报错“找不到printf函数”。
printf函数存在于一个名为printf.o的单独的预编译好的二进制文件中,在链接步骤编译器将hello.o与printf.o合并在一起生成可执行程序hello或者hello.exe。
我靠,61KB,这么大!
有些编译器可能不会产生那么多中间文件,将预编译、编译和汇编合为一步生成.o文件。
源码 hello.c#includehello.iint main() { printf("hello,worldn"); return 0; }
# 1 "main.c" # 1 "hello.s" # 1 " " # 1 "main.c" # 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 1 3 # 9 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3 # 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/crtdefs.h" 1 3 # 10 "C:/MCU/mingw64/x86_64-w64-mingw32/include/crtdefs.h" 3 # 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw.h" 1 3 # 12 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw.h" 3 # 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw_mac.h" 1 3 # 98 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw_mac.h" 3 # 107 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw_mac.h" 3 # 13 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw.h" 2 3 # 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw_secapi.h" 1 3 # 14 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw.h" 2 3 # 282 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw.h" 3 # 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/vadefs.h" 1 3 # 9 "C:/MCU/mingw64/x86_64-w64-mingw32/include/vadefs.h" 3 # 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw.h" 1 3 # 578 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw.h" 3 # 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/sdks/_mingw_directx.h" 1 3 # 579 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw.h" 2 3 # 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/sdks/_mingw_ddk.h" 1 3 # 580 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw.h" 2 3 # 10 "C:/MCU/mingw64/x86_64-w64-mingw32/include/vadefs.h" 2 3 #pragma pack(push,_CRT_PACKING) # 24 "C:/MCU/mingw64/x86_64-w64-mingw32/include/vadefs.h" 3 # 24 "C:/MCU/mingw64/x86_64-w64-mingw32/include/vadefs.h" 3 typedef __builtin_va_list __gnuc_va_list; typedef __gnuc_va_list va_list; # 103 "C:/MCU/mingw64/x86_64-w64-mingw32/include/vadefs.h" 3 #pragma pack(pop) # 283 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw.h" 2 3 # 552 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw.h" 3 void __attribute__((__cdecl__)) __debugbreak(void); extern __inline__ __attribute__((__always_inline__,__gnu_inline__)) void __attribute__((__cdecl__)) __debugbreak(void) { __asm__ __volatile__("int {$}3":); } const char *__mingw_get_crt_info (void); # 11 "C:/MCU/mingw64/x86_64-w64-mingw32/include/crtdefs.h" 2 3 #pragma pack(push,_CRT_PACKING) # 35 "C:/MCU/mingw64/x86_64-w64-mingw32/include/crtdefs.h" 3 __extension__ typedef unsigned long long size_t; # 45 "C:/MCU/mingw64/x86_64-w64-mingw32/include/crtdefs.h" 3 __extension__ typedef long long ssize_t; typedef size_t rsize_t; # 62 "C:/MCU/mingw64/x86_64-w64-mingw32/include/crtdefs.h" 3 __extension__ typedef long long intptr_t; # 75 "C:/MCU/mingw64/x86_64-w64-mingw32/include/crtdefs.h" 3 __extension__ typedef unsigned long long uintptr_t; # 88 "C:/MCU/mingw64/x86_64-w64-mingw32/include/crtdefs.h" 3 __extension__ typedef long long ptrdiff_t; # 98 "C:/MCU/mingw64/x86_64-w64-mingw32/include/crtdefs.h" 3 typedef unsigned short wchar_t; typedef unsigned short wint_t; typedef unsigned short wctype_t; typedef int errno_t; typedef long __time32_t; __extension__ typedef long long __time64_t; # 138 "C:/MCU/mingw64/x86_64-w64-mingw32/include/crtdefs.h" 3 typedef __time64_t time_t; # 422 "C:/MCU/mingw64/x86_64-w64-mingw32/include/crtdefs.h" 3 struct threadlocaleinfostruct; struct threadmbcinfostruct; typedef struct threadlocaleinfostruct *pthreadlocinfo; typedef struct threadmbcinfostruct *pthreadmbcinfo; struct __lc_time_data; typedef struct localeinfo_struct { pthreadlocinfo locinfo; pthreadmbcinfo mbcinfo; } _locale_tstruct,*_locale_t; typedef struct tagLC_ID { unsigned short wLanguage; unsigned short wCountry; unsigned short wCodePage; } LC_ID,*LPLC_ID; typedef struct threadlocaleinfostruct { int refcount; unsigned int lc_codepage; unsigned int lc_collate_cp; unsigned long lc_handle[6]; LC_ID lc_id[6]; struct { char *locale; wchar_t *wlocale; int *refcount; int *wrefcount; } lc_category[6]; int lc_clike; int mb_cur_max; int *lconv_intl_refcount; int *lconv_num_refcount; int *lconv_mon_refcount; struct lconv *lconv; int *ctype1_refcount; unsigned short *ctype1; const unsigned short *pctype; const unsigned char *pclmap; const unsigned char *pcumap; struct __lc_time_data *lc_time_curr; } threadlocinfo; #pragma pack(pop) # 10 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 2 3 # 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw_print_push.h" 1 3 # 12 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 2 3 #pragma pack(push,_CRT_PACKING) # 26 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3 struct _iobuf { char *_ptr; int _cnt; char *_base; int _flag; int _file; int _charbuf; int _bufsiz; char *_tmpfname; }; typedef struct _iobuf FILE; # 80 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3 # 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw_off_t.h" 1 3 typedef long _off_t; typedef long off32_t; __extension__ typedef long long _off64_t; __extension__ typedef long long off64_t; # 26 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw_off_t.h" 3 typedef off32_t off_t; # 81 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 2 3 __attribute__ ((__dllimport__)) FILE *__attribute__((__cdecl__)) __acrt_iob_func(unsigned index); __attribute__ ((__dllimport__)) FILE *__attribute__((__cdecl__)) __iob_func(void); # 104 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3 __extension__ typedef long long fpos_t; # 162 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3 extern __attribute__((__format__ (gnu_scanf, 2, 3))) __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) __mingw_sscanf(const char * __restrict__ _Src,const char * __restrict__ _Format,...); extern __attribute__((__format__ (gnu_scanf, 2, 0))) __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) __mingw_vsscanf (const char * __restrict__ _Str,const char * __restrict__ Format,va_list argp); extern __attribute__((__format__ (gnu_scanf, 1, 2))) __attribute__ ((__nonnull__ (1))) int __attribute__((__cdecl__)) __mingw_scanf(const char * __restrict__ _Format,...); extern __attribute__((__format__ (gnu_scanf, 1, 0))) __attribute__ ((__nonnull__ (1))) int __attribute__((__cdecl__)) __mingw_vscanf(const char * __restrict__ Format, va_list argp); extern __attribute__((__format__ (gnu_scanf, 2, 3))) __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) __mingw_fscanf(FILE * __restrict__ _File,const char * __restrict__ _Format,...); extern __attribute__((__format__ (gnu_scanf, 2, 0))) __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) __mingw_vfscanf (FILE * __restrict__ fp, const char * __restrict__ Format,va_list argp); extern __attribute__((__format__ (gnu_printf, 3, 0))) __attribute__ ((__nonnull__ (3))) int __attribute__((__cdecl__)) __mingw_vsnprintf(char * __restrict__ _DstBuf,size_t _MaxCount,const char * __restrict__ _Format, va_list _ArgList); extern __attribute__((__format__ (gnu_printf, 3, 4))) __attribute__ ((__nonnull__ (3))) int __attribute__((__cdecl__)) __mingw_snprintf(char * __restrict__ s, size_t n, const char * __restrict__ format, ...); extern __attribute__((__format__ (gnu_printf, 1, 2))) __attribute__ ((__nonnull__ (1))) int __attribute__((__cdecl__)) __mingw_printf(const char * __restrict__ , ... ) __attribute__ ((__nothrow__)); extern __attribute__((__format__ (gnu_printf, 1, 0))) __attribute__ ((__nonnull__ (1))) int __attribute__((__cdecl__)) __mingw_vprintf (const char * __restrict__ , va_list) __attribute__ ((__nothrow__)); extern __attribute__((__format__ (gnu_printf, 2, 3))) __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) __mingw_fprintf (FILE * __restrict__ , const char * __restrict__ , ...) __attribute__ ((__nothrow__)); extern __attribute__((__format__ (gnu_printf, 2, 0))) __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) __mingw_vfprintf (FILE * __restrict__ , const char * __restrict__ , va_list) __attribute__ ((__nothrow__)); extern __attribute__((__format__ (gnu_printf, 2, 3))) __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) __mingw_sprintf (char * __restrict__ , const char * __restrict__ , ...) __attribute__ ((__nothrow__)); extern __attribute__((__format__ (gnu_printf, 2, 0))) __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) __mingw_vsprintf (char * __restrict__ , const char * __restrict__ , va_list) __attribute__ ((__nothrow__)); extern __attribute__((__format__ (gnu_printf, 2, 3))) __attribute__((nonnull (1,2))) int __attribute__((__cdecl__)) __mingw_asprintf(char ** __restrict__ , const char * __restrict__ , ...) __attribute__ ((__nothrow__)); extern __attribute__((__format__ (gnu_printf, 2, 0))) __attribute__((nonnull (1,2))) int __attribute__((__cdecl__)) __mingw_vasprintf(char ** __restrict__ , const char * __restrict__ , va_list) __attribute__ ((__nothrow__)); # 506 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3 __attribute__((__format__ (ms_printf, 2, 3))) __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) fprintf(FILE * __restrict__ _File,const char * __restrict__ _Format,...); __attribute__((__format__ (ms_printf, 1, 2))) __attribute__ ((__nonnull__ (1))) int __attribute__((__cdecl__)) printf(const char * __restrict__ _Format,...); __attribute__((__format__ (ms_printf, 2, 3))) __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) sprintf(char * __restrict__ _Dest,const char * __restrict__ _Format,...) ; __attribute__((__format__ (ms_printf, 2, 0))) __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) vfprintf(FILE * __restrict__ _File,const char * __restrict__ _Format,va_list _ArgList); __attribute__((__format__ (ms_printf, 1, 0))) __attribute__ ((__nonnull__ (1))) int __attribute__((__cdecl__)) vprintf(const char * __restrict__ _Format,va_list _ArgList); __attribute__((__format__ (ms_printf, 2, 0))) __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) vsprintf(char * __restrict__ _Dest,const char * __restrict__ _Format,va_list _Args) ; __attribute__((__format__ (ms_scanf, 2, 3))) __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) fscanf(FILE * __restrict__ _File,const char * __restrict__ _Format,...) ; __attribute__((__format__ (ms_scanf, 1, 2))) __attribute__ ((__nonnull__ (1))) int __attribute__((__cdecl__)) scanf(const char * __restrict__ _Format,...) ; __attribute__((__format__ (ms_scanf, 2, 3))) __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) sscanf(const char * __restrict__ _Src,const char * __restrict__ _Format,...) ; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wshadow" __attribute__((__format__ (ms_scanf, 1, 0))) __attribute__ ((__nonnull__ (1))) int __attribute__((__cdecl__)) __ms_vscanf(const char * __restrict__ Format, va_list argp); __attribute__((__format__ (ms_scanf, 2, 0))) __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) __ms_vfscanf (FILE * __restrict__ fp, const char * __restrict__ Format,va_list argp); __attribute__((__format__ (ms_scanf, 2, 0))) __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) __ms_vsscanf (const char * __restrict__ _Str,const char * __restrict__ Format,va_list argp); static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__)) __attribute__((__format__ (ms_scanf, 2, 0))) __attribute__ ((__nonnull__ (2))) int vfscanf (FILE *__stream, const char *__format, __builtin_va_list __local_argv) { return __ms_vfscanf (__stream, __format, __local_argv); } static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__)) __attribute__((__format__ (ms_scanf, 2, 0))) __attribute__ ((__nonnull__ (2))) int vsscanf (const char * __restrict__ __source, const char * __restrict__ __format, __builtin_va_list __local_argv) { return __ms_vsscanf( __source, __format, __local_argv ); } static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__)) __attribute__((__format__ (ms_scanf, 1, 0))) __attribute__ ((__nonnull__ (1))) int vscanf(const char *__format, __builtin_va_list __local_argv) { return __ms_vscanf (__format, __local_argv); } #pragma GCC diagnostic pop __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _filbuf(FILE *_File); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _flsbuf(int _Ch,FILE *_File); __attribute__ ((__dllimport__)) FILE *__attribute__((__cdecl__)) _fsopen(const char *_Filename,const char *_Mode,int _ShFlag); void __attribute__((__cdecl__)) clearerr(FILE *_File); int __attribute__((__cdecl__)) fclose(FILE *_File); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fcloseall(void); __attribute__ ((__dllimport__)) FILE *__attribute__((__cdecl__)) _fdopen(int _FileHandle,const char *_Mode); int __attribute__((__cdecl__)) feof(FILE *_File); int __attribute__((__cdecl__)) ferror(FILE *_File); int __attribute__((__cdecl__)) fflush(FILE *_File); int __attribute__((__cdecl__)) fgetc(FILE *_File); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fgetchar(void); int __attribute__((__cdecl__)) fgetpos(FILE * __restrict__ _File ,fpos_t * __restrict__ _Pos); int __attribute__((__cdecl__)) fgetpos64(FILE * __restrict__ _File ,fpos_t * __restrict__ _Pos); char *__attribute__((__cdecl__)) fgets(char * __restrict__ _Buf,int _MaxCount,FILE * __restrict__ _File); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fileno(FILE *_File); __attribute__ ((__dllimport__)) char *__attribute__((__cdecl__)) _tempnam(const char *_DirName,const char *_FilePrefix); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _flushall(void); FILE *__attribute__((__cdecl__)) fopen(const char * __restrict__ _Filename,const char * __restrict__ _Mode) ; FILE *fopen64(const char * __restrict__ filename,const char * __restrict__ mode); int __attribute__((__cdecl__)) fputc(int _Ch,FILE *_File); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fputchar(int _Ch); int __attribute__((__cdecl__)) fputs(const char * __restrict__ _Str,FILE * __restrict__ _File); size_t __attribute__((__cdecl__)) fread(void * __restrict__ _DstBuf,size_t _ElementSize,size_t _Count,FILE * __restrict__ _File); FILE *__attribute__((__cdecl__)) freopen(const char * __restrict__ _Filename,const char * __restrict__ _Mode,FILE * __restrict__ _File) ; int __attribute__((__cdecl__)) fsetpos(FILE *_File,const fpos_t *_Pos); int __attribute__((__cdecl__)) fsetpos64(FILE *_File,const fpos_t *_Pos); int __attribute__((__cdecl__)) fseek(FILE *_File,long _Offset,int _Origin); long __attribute__((__cdecl__)) ftell(FILE *_File); # 631 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3 __extension__ int __attribute__((__cdecl__)) _fseeki64(FILE *_File,long long _Offset,int _Origin); __extension__ long long __attribute__((__cdecl__)) _ftelli64(FILE *_File); int fseeko64(FILE* stream, _off64_t offset, int whence); int fseeko(FILE* stream, _off_t offset, int whence); _off_t ftello(FILE * stream); _off64_t ftello64(FILE * stream); # 654 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3 size_t __attribute__((__cdecl__)) fwrite(const void * __restrict__ _Str,size_t _Size,size_t _Count,FILE * __restrict__ _File); int __attribute__((__cdecl__)) getc(FILE *_File); int __attribute__((__cdecl__)) getchar(void); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _getmaxstdio(void); char *__attribute__((__cdecl__)) gets(char *_Buffer) ; int __attribute__((__cdecl__)) _getw(FILE *_File); void __attribute__((__cdecl__)) perror(const char *_ErrMsg); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _pclose(FILE *_File); __attribute__ ((__dllimport__)) FILE *__attribute__((__cdecl__)) _popen(const char *_Command,const char *_Mode); int __attribute__((__cdecl__)) putc(int _Ch,FILE *_File); int __attribute__((__cdecl__)) putchar(int _Ch); int __attribute__((__cdecl__)) puts(const char *_Str); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _putw(int _Word,FILE *_File); int __attribute__((__cdecl__)) remove(const char *_Filename); int __attribute__((__cdecl__)) rename(const char *_OldFilename,const char *_NewFilename); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _unlink(const char *_Filename); int __attribute__((__cdecl__)) unlink(const char *_Filename) ; void __attribute__((__cdecl__)) rewind(FILE *_File); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _rmtmp(void); void __attribute__((__cdecl__)) setbuf(FILE * __restrict__ _File,char * __restrict__ _Buffer) ; __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _setmaxstdio(int _Max); __attribute__ ((__dllimport__)) unsigned int __attribute__((__cdecl__)) _set_output_format(unsigned int _Format); __attribute__ ((__dllimport__)) unsigned int __attribute__((__cdecl__)) _get_output_format(void); int __attribute__((__cdecl__)) setvbuf(FILE * __restrict__ _File,char * __restrict__ _Buf,int _Mode,size_t _Size); # 712 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3 __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _scprintf(const char * __restrict__ _Format,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snscanf(const char * __restrict__ _Src,size_t _MaxCount,const char * __restrict__ _Format,...) ; FILE *__attribute__((__cdecl__)) tmpfile(void) ; char *__attribute__((__cdecl__)) tmpnam(char *_Buffer); int __attribute__((__cdecl__)) ungetc(int _Ch,FILE *_File); # 734 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3 __attribute__((__format__ (ms_printf, 3, 4))) __attribute__ ((__nonnull__ (3))) __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snprintf(char * __restrict__ _Dest,size_t _Count,const char * __restrict__ _Format,...) ; __attribute__((__format__ (ms_printf, 3, 0))) __attribute__ ((__nonnull__ (3))) __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsnprintf(char * __restrict__ _Dest,size_t _Count,const char * __restrict__ _Format,va_list _Args) ; # 761 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3 #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wshadow" __attribute__((__format__ (ms_printf, 3, 0))) __attribute__ ((__nonnull__ (3))) int __attribute__((__cdecl__)) __ms_vsnprintf(char * __restrict__ d,size_t n,const char * __restrict__ format,va_list arg) ; static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__)) __attribute__((__format__ (ms_printf, 3, 0))) __attribute__ ((__nonnull__ (3))) int vsnprintf (char * __restrict__ __stream, size_t __n, const char * __restrict__ __format, va_list __local_argv) { return __ms_vsnprintf (__stream, __n, __format, __local_argv); } __attribute__((__format__ (ms_printf, 3, 4))) __attribute__ ((__nonnull__ (3))) int __attribute__((__cdecl__)) __ms_snprintf(char * __restrict__ s, size_t n, const char * __restrict__ format, ...); static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__)) __attribute__((__format__ (ms_printf, 3, 4))) __attribute__ ((__nonnull__ (3))) int snprintf (char * __restrict__ __stream, size_t __n, const char * __restrict__ __format, ...) { int __retval; __builtin_va_list __local_argv; __builtin_va_start( __local_argv, __format ); __retval = __ms_vsnprintf (__stream, __n, __format, __local_argv); __builtin_va_end( __local_argv ); return __retval; } #pragma GCC diagnostic pop # 811 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3 __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vscprintf(const char * __restrict__ _Format,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _set_printf_count_output(int _Value); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _get_printf_count_output(void); __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) __mingw_swscanf(const wchar_t * __restrict__ _Src,const wchar_t * __restrict__ _Format,...); __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) __mingw_vswscanf (const wchar_t * __restrict__ _Str,const wchar_t * __restrict__ Format,va_list argp); __attribute__ ((__nonnull__ (1))) int __attribute__((__cdecl__)) __mingw_wscanf(const wchar_t * __restrict__ _Format,...); __attribute__ ((__nonnull__ (1))) int __attribute__((__cdecl__)) __mingw_vwscanf(const wchar_t * __restrict__ Format, va_list argp); __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) __mingw_fwscanf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...); __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) __mingw_vfwscanf (FILE * __restrict__ fp, const wchar_t * __restrict__ Format,va_list argp); __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) __mingw_fwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...); __attribute__ ((__nonnull__ (1))) int __attribute__((__cdecl__)) __mingw_wprintf(const wchar_t * __restrict__ _Format,...); __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) __mingw_vfwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,va_list _ArgList); __attribute__ ((__nonnull__ (1))) int __attribute__((__cdecl__)) __mingw_vwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList); __attribute__ ((__nonnull__ (3))) int __attribute__((__cdecl__)) __mingw_snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...); __attribute__ ((__nonnull__ (3))) int __attribute__((__cdecl__)) __mingw_vsnwprintf (wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , va_list); __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) __mingw_swprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...); __attribute__ ((__nonnull__ (2))) int __attribute__((__cdecl__)) __mingw_vswprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ ,va_list); # 1061 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3 int __attribute__((__cdecl__)) fwscanf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...) ; int __attribute__((__cdecl__)) swscanf(const wchar_t * __restrict__ _Src,const wchar_t * __restrict__ _Format,...) ; int __attribute__((__cdecl__)) wscanf(const wchar_t * __restrict__ _Format,...) ; int __attribute__((__cdecl__)) __ms_vwscanf (const wchar_t * __restrict__ , va_list); int __attribute__((__cdecl__)) __ms_vfwscanf (FILE * __restrict__ ,const wchar_t * __restrict__ ,va_list); int __attribute__((__cdecl__)) __ms_vswscanf (const wchar_t * __restrict__ ,const wchar_t * __restrict__ ,va_list); static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__)) __attribute__ ((__nonnull__ (2))) int vfwscanf (FILE *__stream, const wchar_t *__format, __builtin_va_list __local_argv) { return __ms_vfwscanf (__stream, __format, __local_argv); } static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__)) __attribute__ ((__nonnull__ (2))) int vswscanf (const wchar_t * __restrict__ __source, const wchar_t * __restrict__ __format, __builtin_va_list __local_argv) { return __ms_vswscanf( __source, __format, __local_argv ); } static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__)) __attribute__ ((__nonnull__ (1))) int vwscanf(const wchar_t *__format, __builtin_va_list __local_argv) { return __ms_vwscanf (__format, __local_argv); } int __attribute__((__cdecl__)) fwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...); int __attribute__((__cdecl__)) wprintf(const wchar_t * __restrict__ _Format,...); int __attribute__((__cdecl__)) vfwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,va_list _ArgList); int __attribute__((__cdecl__)) vwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList); # 1105 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3 __attribute__ ((__dllimport__)) FILE *__attribute__((__cdecl__)) _wfsopen(const wchar_t *_Filename,const wchar_t *_Mode,int _ShFlag); wint_t __attribute__((__cdecl__)) fgetwc(FILE *_File); __attribute__ ((__dllimport__)) wint_t __attribute__((__cdecl__)) _fgetwchar(void); wint_t __attribute__((__cdecl__)) fputwc(wchar_t _Ch,FILE *_File); __attribute__ ((__dllimport__)) wint_t __attribute__((__cdecl__)) _fputwchar(wchar_t _Ch); wint_t __attribute__((__cdecl__)) getwc(FILE *_File); wint_t __attribute__((__cdecl__)) getwchar(void); wint_t __attribute__((__cdecl__)) putwc(wchar_t _Ch,FILE *_File); wint_t __attribute__((__cdecl__)) putwchar(wchar_t _Ch); wint_t __attribute__((__cdecl__)) ungetwc(wint_t _Ch,FILE *_File); wchar_t *__attribute__((__cdecl__)) fgetws(wchar_t * __restrict__ _Dst,int _SizeInWords,FILE * __restrict__ _File); int __attribute__((__cdecl__)) fputws(const wchar_t * __restrict__ _Str,FILE * __restrict__ _File); __attribute__ ((__dllimport__)) wchar_t *__attribute__((__cdecl__)) _getws(wchar_t *_String) ; __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _putws(const wchar_t *_Str); # 1183 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3 __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _scwprintf(const wchar_t * __restrict__ _Format,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _swprintf_c(wchar_t * __restrict__ _DstBuf,size_t _SizeInWords,const wchar_t * __restrict__ _Format,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vswprintf_c(wchar_t * __restrict__ _DstBuf,size_t _SizeInWords,const wchar_t * __restrict__ _Format,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snwprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,...) ; __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsnwprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,va_list _Args) ; int __attribute__((__cdecl__)) __ms_snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...); int __attribute__((__cdecl__)) __ms_vsnwprintf (wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , va_list); static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__)) int snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...) { int r; va_list argp; __builtin_va_start (argp, format); r = _vsnwprintf (s, n, format, argp); __builtin_va_end (argp); return r; } static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__)) int __attribute__((__cdecl__)) vsnwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, va_list arg) { return _vsnwprintf(s,n,format,arg); } __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _swprintf(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Format,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vswprintf(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Format,va_list _Args); # 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/swprintf.inl" 1 3 # 25 "C:/MCU/mingw64/x86_64-w64-mingw32/include/swprintf.inl" 3 static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__)) __attribute__ ((__nonnull__ (3))) int vswprintf (wchar_t *__stream, size_t __count, const wchar_t *__format, __builtin_va_list __local_argv) { return vsnwprintf( __stream, __count, __format, __local_argv ); } static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__)) __attribute__ ((__nonnull__ (3))) int swprintf (wchar_t *__stream, size_t __count, const wchar_t *__format, ...) { int __retval; __builtin_va_list __local_argv; __builtin_va_start( __local_argv, __format ); __retval = vswprintf( __stream, __count, __format, __local_argv ); __builtin_va_end( __local_argv ); return __retval; } # 1224 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 2 3 # 1233 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3 __attribute__ ((__dllimport__)) wchar_t *__attribute__((__cdecl__)) _wtempnam(const wchar_t *_Directory,const wchar_t *_FilePrefix); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vscwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snwscanf(const wchar_t * __restrict__ _Src,size_t _MaxCount,const wchar_t * __restrict__ _Format,...); __attribute__ ((__dllimport__)) FILE *__attribute__((__cdecl__)) _wfdopen(int _FileHandle ,const wchar_t *_Mode); __attribute__ ((__dllimport__)) FILE *__attribute__((__cdecl__)) _wfopen(const wchar_t * __restrict__ _Filename,const wchar_t *__restrict__ _Mode) ; __attribute__ ((__dllimport__)) FILE *__attribute__((__cdecl__)) _wfreopen(const wchar_t * __restrict__ _Filename,const wchar_t * __restrict__ _Mode,FILE * __restrict__ _OldFile) ; __attribute__ ((__dllimport__)) void __attribute__((__cdecl__)) _wperror(const wchar_t *_ErrMsg); __attribute__ ((__dllimport__)) FILE *__attribute__((__cdecl__)) _wpopen(const wchar_t *_Command,const wchar_t *_Mode); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _wremove(const wchar_t *_Filename); __attribute__ ((__dllimport__)) wchar_t *__attribute__((__cdecl__)) _wtmpnam(wchar_t *_Buffer); __attribute__ ((__dllimport__)) wint_t __attribute__((__cdecl__)) _fgetwc_nolock(FILE *_File); __attribute__ ((__dllimport__)) wint_t __attribute__((__cdecl__)) _fputwc_nolock(wchar_t _Ch,FILE *_File); __attribute__ ((__dllimport__)) wint_t __attribute__((__cdecl__)) _ungetwc_nolock(wint_t _Ch,FILE *_File); # 1290 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3 __attribute__ ((__dllimport__)) void __attribute__((__cdecl__)) _lock_file(FILE *_File); __attribute__ ((__dllimport__)) void __attribute__((__cdecl__)) _unlock_file(FILE *_File); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fclose_nolock(FILE *_File); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fflush_nolock(FILE *_File); __attribute__ ((__dllimport__)) size_t __attribute__((__cdecl__)) _fread_nolock(void * __restrict__ _DstBuf,size_t _ElementSize,size_t _Count,FILE * __restrict__ _File); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fseek_nolock(FILE *_File,long _Offset,int _Origin); __attribute__ ((__dllimport__)) long __attribute__((__cdecl__)) _ftell_nolock(FILE *_File); __extension__ __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fseeki64_nolock(FILE *_File,long long _Offset,int _Origin); __extension__ __attribute__ ((__dllimport__)) long long __attribute__((__cdecl__)) _ftelli64_nolock(FILE *_File); __attribute__ ((__dllimport__)) size_t __attribute__((__cdecl__)) _fwrite_nolock(const void * __restrict__ _DstBuf,size_t _Size,size_t _Count,FILE * __restrict__ _File); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _ungetc_nolock(int _Ch,FILE *_File); char *__attribute__((__cdecl__)) tempnam(const char *_Directory,const char *_FilePrefix) ; int __attribute__((__cdecl__)) fcloseall(void) ; FILE *__attribute__((__cdecl__)) fdopen(int _FileHandle,const char *_Format) ; int __attribute__((__cdecl__)) fgetchar(void) ; int __attribute__((__cdecl__)) fileno(FILE *_File) ; int __attribute__((__cdecl__)) flushall(void) ; int __attribute__((__cdecl__)) fputchar(int _Ch) ; int __attribute__((__cdecl__)) getw(FILE *_File) ; int __attribute__((__cdecl__)) putw(int _Ch,FILE *_File) ; int __attribute__((__cdecl__)) rmtmp(void) ; # 1332 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3 int __attribute__((__cdecl__)) __mingw_str_wide_utf8 (const wchar_t * const wptr, char **mbptr, size_t * buflen); # 1346 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3 int __attribute__((__cdecl__)) __mingw_str_utf8_wide (const char *const mbptr, wchar_t ** wptr, size_t * buflen); # 1355 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3 void __attribute__((__cdecl__)) __mingw_str_free(void *ptr); __attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _wspawnl(int _Mode,const wchar_t *_Filename,const wchar_t *_ArgList,...); __attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _wspawnle(int _Mode,const wchar_t *_Filename,const wchar_t *_ArgList,...); __attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _wspawnlp(int _Mode,const wchar_t *_Filename,const wchar_t *_ArgList,...); __attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _wspawnlpe(int _Mode,const wchar_t *_Filename,const wchar_t *_ArgList,...); __attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _wspawnv(int _Mode,const wchar_t *_Filename,const wchar_t *const *_ArgList); __attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _wspawnve(int _Mode,const wchar_t *_Filename,const wchar_t *const *_ArgList,const wchar_t *const *_Env); __attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _wspawnvp(int _Mode,const wchar_t *_Filename,const wchar_t *const *_ArgList); __attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _wspawnvpe(int _Mode,const wchar_t *_Filename,const wchar_t *const *_ArgList,const wchar_t *const *_Env); # 1385 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3 __attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _spawnv(int _Mode,const char *_Filename,const char *const *_ArgList); __attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _spawnve(int _Mode,const char *_Filename,const char *const *_ArgList,const char *const *_Env); __attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _spawnvp(int _Mode,const char *_Filename,const char *const *_ArgList); __attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _spawnvpe(int _Mode,const char *_Filename,const char *const *_ArgList,const char *const *_Env); #pragma pack(pop) # 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/sec_api/stdio_s.h" 1 3 # 9 "C:/MCU/mingw64/x86_64-w64-mingw32/include/sec_api/stdio_s.h" 3 # 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 1 3 # 10 "C:/MCU/mingw64/x86_64-w64-mingw32/include/sec_api/stdio_s.h" 2 3 # 28 "C:/MCU/mingw64/x86_64-w64-mingw32/include/sec_api/stdio_s.h" 3 __attribute__ ((__dllimport__)) errno_t __attribute__((__cdecl__)) clearerr_s(FILE *_File); size_t __attribute__((__cdecl__)) fread_s(void *_DstBuf,size_t _DstSize,size_t _ElementSize,size_t _Count,FILE *_File); # 471 "C:/MCU/mingw64/x86_64-w64-mingw32/include/sec_api/stdio_s.h" 3 int __attribute__((__cdecl__)) fprintf_s(FILE *_File,const char *_Format,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fscanf_s_l(FILE *_File,const char *_Format,_locale_t _Locale,...); int __attribute__((__cdecl__)) printf_s(const char *_Format,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _scanf_l(const char *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _scanf_s_l(const char *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snprintf_c(char *_DstBuf,size_t _MaxCount,const char *_Format,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsnprintf_c(char *_DstBuf,size_t _MaxCount,const char *_Format,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fscanf_l(FILE *_File,const char *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _sscanf_l(const char *_Src,const char *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _sscanf_s_l(const char *_Src,const char *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) sscanf_s(const char *_Src,const char *_Format,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snscanf_s(const char *_Src,size_t _MaxCount,const char *_Format,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snscanf_l(const char *_Src,size_t _MaxCount,const char *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snscanf_s_l(const char *_Src,size_t _MaxCount,const char *_Format,_locale_t _Locale,...); int __attribute__((__cdecl__)) vfprintf_s(FILE *_File,const char *_Format,va_list _ArgList); int __attribute__((__cdecl__)) vprintf_s(const char *_Format,va_list _ArgList); int __attribute__((__cdecl__)) vsnprintf_s(char *_DstBuf,size_t _DstSize,size_t _MaxCount,const char *_Format,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsnprintf_s(char *_DstBuf,size_t _DstSize,size_t _MaxCount,const char *_Format,va_list _ArgList); __attribute__((dllimport)) int __attribute__((__cdecl__)) vsprintf_s(char *_DstBuf,size_t _Size,const char *_Format,va_list _ArgList); __attribute__((dllimport)) int __attribute__((__cdecl__)) sprintf_s(char *_DstBuf,size_t _DstSize,const char *_Format,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snprintf_s(char *_DstBuf,size_t _DstSize,size_t _MaxCount,const char *_Format,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fprintf_p(FILE *_File,const char *_Format,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _printf_p(const char *_Format,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _sprintf_p(char *_Dst,size_t _MaxCount,const char *_Format,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vfprintf_p(FILE *_File,const char *_Format,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vprintf_p(const char *_Format,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsprintf_p(char *_Dst,size_t _MaxCount,const char *_Format,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _scprintf_p(const char *_Format,...); __attribute__((dllimport)) int __attribute__((__cdecl__)) _vscprintf_p(const char *_Format,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _printf_l(const char *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _printf_p_l(const char *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vprintf_l(const char *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vprintf_p_l(const char *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fprintf_l(FILE *_File,const char *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fprintf_p_l(FILE *_File,const char *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vfprintf_l(FILE *_File,const char *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vfprintf_p_l(FILE *_File,const char *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _sprintf_l(char *_DstBuf,const char *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _sprintf_p_l(char *_DstBuf,size_t _MaxCount,const char *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsprintf_l(char *_DstBuf,const char *_Format,_locale_t,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsprintf_p_l(char *_DstBuf,size_t _MaxCount,const char *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _scprintf_l(const char *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _scprintf_p_l(const char *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vscprintf_l(const char *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vscprintf_p_l(const char *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _printf_s_l(const char *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vprintf_s_l(const char *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fprintf_s_l(FILE *_File,const char *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vfprintf_s_l(FILE *_File,const char *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _sprintf_s_l(char *_DstBuf,size_t _DstSize,const char *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsprintf_s_l(char *_DstBuf,size_t _DstSize,const char *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snprintf_s_l(char *_DstBuf,size_t _DstSize,size_t _MaxCount,const char *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsnprintf_s_l(char *_DstBuf,size_t _DstSize,size_t _MaxCount,const char *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snprintf_l(char *_DstBuf,size_t _MaxCount,const char *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snprintf_c_l(char *_DstBuf,size_t _MaxCount,const char *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsnprintf_l(char *_DstBuf,size_t _MaxCount,const char *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsnprintf_c_l(char *_DstBuf,size_t _MaxCount,const char *,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) errno_t __attribute__((__cdecl__)) fopen_s(FILE **_File,const char *_Filename,const char *_Mode); __attribute__ ((__dllimport__)) errno_t __attribute__((__cdecl__)) freopen_s(FILE** _File, const char *_Filename, const char *_Mode, FILE *_Stream); __attribute__ ((__dllimport__)) char* __attribute__((__cdecl__)) gets_s(char*,rsize_t); __attribute__ ((__dllimport__)) errno_t __attribute__((__cdecl__)) tmpnam_s(char*,rsize_t); __attribute__ ((__dllimport__)) wchar_t *__attribute__((__cdecl__)) _getws_s(wchar_t *_Str,size_t _SizeInWords); # 739 "C:/MCU/mingw64/x86_64-w64-mingw32/include/sec_api/stdio_s.h" 3 int __attribute__((__cdecl__)) fwprintf_s(FILE *_File,const wchar_t *_Format,...); int __attribute__((__cdecl__)) wprintf_s(const wchar_t *_Format,...); int __attribute__((__cdecl__)) vfwprintf_s(FILE *_File,const wchar_t *_Format,va_list _ArgList); int __attribute__((__cdecl__)) vwprintf_s(const wchar_t *_Format,va_list _ArgList); int __attribute__((__cdecl__)) vswprintf_s(wchar_t *_Dst,size_t _SizeInWords,const wchar_t *_Format,va_list _ArgList); int __attribute__((__cdecl__)) swprintf_s(wchar_t *_Dst,size_t _SizeInWords,const wchar_t *_Format,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsnwprintf_s(wchar_t *_DstBuf,size_t _DstSizeInWords,size_t _MaxCount,const wchar_t *_Format,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snwprintf_s(wchar_t *_DstBuf,size_t _DstSizeInWords,size_t _MaxCount,const wchar_t *_Format,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _wprintf_s_l(const wchar_t *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vwprintf_s_l(const wchar_t *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fwprintf_s_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vfwprintf_s_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _swprintf_s_l(wchar_t *_DstBuf,size_t _DstSize,const wchar_t *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vswprintf_s_l(wchar_t *_DstBuf,size_t _DstSize,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snwprintf_s_l(wchar_t *_DstBuf,size_t _DstSize,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsnwprintf_s_l(wchar_t *_DstBuf,size_t _DstSize,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fwscanf_s_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _swscanf_s_l(const wchar_t *_Src,const wchar_t *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) swscanf_s(const wchar_t *_Src,const wchar_t *_Format,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snwscanf_s(const wchar_t *_Src,size_t _MaxCount,const wchar_t *_Format,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snwscanf_s_l(const wchar_t *_Src,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _wscanf_s_l(const wchar_t *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) errno_t __attribute__((__cdecl__)) _wfopen_s(FILE **_File,const wchar_t *_Filename,const wchar_t *_Mode); __attribute__ ((__dllimport__)) errno_t __attribute__((__cdecl__)) _wfreopen_s(FILE **_File,const wchar_t *_Filename,const wchar_t *_Mode,FILE *_OldFile); __attribute__ ((__dllimport__)) errno_t __attribute__((__cdecl__)) _wtmpnam_s(wchar_t *_DstBuf,size_t _SizeInWords); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fwprintf_p(FILE *_File,const wchar_t *_Format,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _wprintf_p(const wchar_t *_Format,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vfwprintf_p(FILE *_File,const wchar_t *_Format,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vwprintf_p(const wchar_t *_Format,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _swprintf_p(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,...); __attribute__((dllimport)) int __attribute__((__cdecl__)) _vswprintf_p(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _scwprintf_p(const wchar_t *_Format,...); __attribute__((dllimport)) int __attribute__((__cdecl__)) _vscwprintf_p(const wchar_t *_Format,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _wprintf_l(const wchar_t *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _wprintf_p_l(const wchar_t *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vwprintf_l(const wchar_t *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vwprintf_p_l(const wchar_t *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fwprintf_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fwprintf_p_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vfwprintf_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vfwprintf_p_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _swprintf_c_l(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _swprintf_p_l(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vswprintf_c_l(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vswprintf_p_l(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _scwprintf_l(const wchar_t *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _scwprintf_p_l(const wchar_t *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vscwprintf_p_l(const wchar_t *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snwprintf_l(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsnwprintf_l(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) __swprintf_l(wchar_t *_Dest,const wchar_t *_Format,_locale_t _Plocinfo,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) __vswprintf_l(wchar_t *_Dest,const wchar_t *_Format,_locale_t _Plocinfo,va_list _Args); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vscwprintf_l(const wchar_t *_Format,_locale_t _Locale,va_list _ArgList); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fwscanf_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _swscanf_l(const wchar_t *_Src,const wchar_t *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snwscanf_l(const wchar_t *_Src,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _wscanf_l(const wchar_t *_Format,_locale_t _Locale,...); __attribute__ ((__dllimport__)) size_t __attribute__((__cdecl__)) _fread_nolock_s(void *_DstBuf,size_t _DstSize,size_t _ElementSize,size_t _Count,FILE *_File); # 1398 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 2 3 # 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw_print_pop.h" 1 3 # 1400 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 2 3 # 2 "main.c" 2 # 3 "main.c" int main() { printf("Hello, World!n"); return 0; }
.file "main.c" .text .def __main; .scl 2; .type 32; .endef .section .rdata,"dr" .LC0: .ascii "Hello, World! " .text .globl main .def main; .scl 2; .type 32; .endef .seh_proc main main: pushq %rbp .seh_pushreg %rbp movq %rsp, %rbp .seh_setframe %rbp, 0 subq $32, %rsp .seh_stackalloc 32 .seh_endprologue call __main leaq .LC0(%rip), %rcx call puts movl $0, %eax addq $32, %rsp popq %rbp ret .seh_endproc .ident "GCC: (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0" .def puts; .scl 2; .type 32; .endefhello.o
没找到以二进制文本查看hello.o的办法。
下面是在vscode中使用插件打开的,以十六进制显示并自动生成了一下注解的hello.o文件的内容。
嗯…
咱也看不懂啥意思…
Offset: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000000: 64 86 07 00 00 00 00 00 00 02 00 00 14 00 00 00 d............... 00000010: 00 00 04 00 2E 74 65 78 74 00 00 00 00 00 00 00 .....text....... 00000020: 00 00 00 00 30 00 00 00 2C 01 00 00 C4 01 00 00 ....0...,...D... 00000030: 00 00 00 00 03 00 00 00 20 00 50 60 2E 64 61 74 ..........P`.dat 00000040: 61 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a............... 00000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000060: 40 00 50 C0 2E 62 73 73 00 00 00 00 00 00 00 00 @.P@.bss........ 00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000080: 00 00 00 00 00 00 00 00 80 00 50 C0 2E 72 64 61 ..........P@.rda 00000090: 74 61 00 00 00 00 00 00 00 00 00 00 10 00 00 00 ta.............. 000000a0: 5C 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ............... 000000b0: 40 00 50 40 2E 78 64 61 74 61 00 00 00 00 00 00 @.P@.xdata...... 000000c0: 00 00 00 00 0C 00 00 00 6C 01 00 00 00 00 00 00 ........l....... 000000d0: 00 00 00 00 00 00 00 00 40 00 30 40 2E 70 64 61 ........@.0@.pda 000000e0: 74 61 00 00 00 00 00 00 00 00 00 00 0C 00 00 00 ta.............. 000000f0: 78 01 00 00 E2 01 00 00 00 00 00 00 03 00 00 00 x...b........... 00000100: 40 00 30 40 2F 34 00 00 00 00 00 00 00 00 00 00 @.0@/4.......... 00000110: 00 00 00 00 40 00 00 00 84 01 00 00 00 00 00 00 ....@........... 00000120: 00 00 00 00 00 00 00 00 40 00 50 40 55 48 89 E5 ........@.P@UH.e 00000130: 48 83 EC 20 E8 00 00 00 00 48 8D 0D 00 00 00 00 H.l.h....H...... 00000140: E8 00 00 00 00 B8 00 00 00 00 48 83 C4 20 5D C3 h....8....H.D.]C 00000150: 90 90 90 90 90 90 90 90 90 90 90 90 48 65 6C 6C ............Hell 00000160: 6F 2C 20 57 6F 72 6C 64 21 00 00 00 01 08 03 05 o,.World!....... 00000170: 08 32 04 03 01 50 00 00 00 00 00 00 24 00 00 00 .2...P......$... 00000180: 00 00 00 00 47 43 43 3A 20 28 78 38 36 5F 36 34 ....GCC:.(x86_64 00000190: 2D 70 6F 73 69 78 2D 73 65 68 2D 72 65 76 30 2C -posix-seh-rev0, 000001a0: 20 42 75 69 6C 74 20 62 79 20 4D 69 6E 47 57 2D .Built.by.MinGW- 000001b0: 57 36 34 20 70 72 6F 6A 65 63 74 29 20 38 2E 31 W64.project).8.1 000001c0: 2E 30 00 00 09 00 00 00 12 00 00 00 04 00 10 00 .0.............. 000001d0: 00 00 0A 00 00 00 04 00 15 00 00 00 13 00 00 00 ................ 000001e0: 04 00 00 00 00 00 04 00 00 00 03 00 04 00 00 00 ................ 000001f0: 04 00 00 00 03 00 08 00 00 00 0C 00 00 00 03 00 ................ 00000200: 2E 66 69 6C 65 00 00 00 00 00 00 00 FE FF 00 00 .file.......~... 00000210: 67 01 6D 61 69 6E 2E 63 00 00 00 00 00 00 00 00 g.main.c........ 00000220: 00 00 00 00 6D 61 69 6E 00 00 00 00 00 00 00 00 ....main........ 00000230: 01 00 20 00 02 01 00 00 00 00 00 00 00 00 00 00 ................ 00000240: 00 00 00 00 00 00 00 00 2E 74 65 78 74 00 00 00 .........text... 00000250: 00 00 00 00 01 00 00 00 03 01 24 00 00 00 03 00 ..........$..... 00000260: 00 00 00 00 00 00 00 00 00 00 00 00 2E 64 61 74 .............dat 00000270: 61 00 00 00 00 00 00 00 02 00 00 00 03 01 00 00 a............... 00000280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000290: 2E 62 73 73 00 00 00 00 00 00 00 00 03 00 00 00 .bss............ 000002a0: 03 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000002b0: 00 00 00 00 2E 72 64 61 74 61 00 00 00 00 00 00 .....rdata...... 000002c0: 04 00 00 00 03 01 0E 00 00 00 00 00 00 00 00 00 ................ 000002d0: 00 00 00 00 00 00 00 00 2E 78 64 61 74 61 00 00 .........xdata.. 000002e0: 00 00 00 00 05 00 00 00 03 01 0C 00 00 00 00 00 ................ 000002f0: 00 00 00 00 00 00 00 00 00 00 00 00 2E 70 64 61 .............pda 00000300: 74 61 00 00 00 00 00 00 06 00 00 00 03 01 0C 00 ta.............. 00000310: 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000320: 00 00 00 00 0F 00 00 00 00 00 00 00 07 00 00 00 ................ 00000330: 03 01 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 ..?............. 00000340: 00 00 00 00 5F 5F 6D 61 69 6E 00 00 00 00 00 00 ....__main...... 00000350: 00 00 20 00 02 00 70 75 74 73 00 00 00 00 00 00 ......puts...... 00000360: 00 00 00 00 20 00 02 00 1A 00 00 00 2E 72 64 61 .............rda 00000370: 74 61 24 7A 7A 7A 00 2E 72 64 61 74 61 24 7A 7A ta$zzz..rdata$zz 00000380: 7A 00 z.
CPU输入端:是信号进入CPU的起点。物质上:CPU的组成中有这样一组这样门,门的输入端专门和外部连接,从外部获取信号(指令和数据)。
CPU输出端:是信号在CPU中传递的终点。物质上:CPU的组成中有这样一组这样门,门的输出端专门和外部连接,CPU运行的结果以电平信号写在该端口,被外界读取。 ↩︎对CPU读写:要么写高电平,要么写低电平,端口只有这两种状态。 ↩︎
机器码:一组序列,序列中只包含0和1,能够直接被CPU使用。为什么只包含0和1?因为序列中的每个0和1都对应着一个输入端口的电平状态,1代表高电平,0代表低电平。
总结一下:端口拥有状态的数量,决定机器码包含多少种状态。传说中的量子/光子计算机每个光子拥有多个状态,量子计算机的机器码就就有可能包含3,4,5… ↩︎仅个人学习笔记,肯定有些理解不到位的地方,读者见谅哈!真错了欢迎指正,一起学习一起进步,那种扯淡、吵架、秀优越的就别打字了… ↩︎



