- 论坛徽章:
- 0
|
- as -g aaatest.s -o aaatest.o
- aaatest.s: Assembler messages:
- aaatest.s:19: Error: `aaa' is not supported in 64-bit mode
- make: *** [aaatest.o] 错误 1
- as -g adctest.s -o adctest.o
- adctest.s: Assembler messages:
- adctest.s:18: Error: suffix or operands invalid for `push'
- adctest.s:19: Error: suffix or operands invalid for `push'
- adctest.s:23: Error: suffix or operands invalid for `push'
- make: *** [adctest.o] 错误 1
- as -g cpuidtest.s -o cpuidtest.o
- cpuidtest.s: Assembler messages:
- cpuidtest.s:11: Error: suffix or operands invalid for `pushf'
- cpuidtest.s:12: Error: suffix or operands invalid for `pop'
- cpuidtest.s:15: Error: suffix or operands invalid for `push'
- cpuidtest.s:16: Error: suffix or operands invalid for `popf'
- cpuidtest.s:17: Error: suffix or operands invalid for `pushf'
- cpuidtest.s:18: Error: suffix or operands invalid for `pop'
- cpuidtest.s:22: Error: suffix or operands invalid for `push'
- cpuidtest.s:25: Error: suffix or operands invalid for `push'
- cpuidtest.s:28: Error: suffix or operands invalid for `push'
- cpuidtest.s:31: Error: suffix or operands invalid for `push'
- make: *** [cpuidtest.o] 错误 1
- .............................
复制代码 因为刚学汇编还有很多东西不知道
以上是Professional Assembly Language 书中第八章的代码编译后的结果
第一个编译的文件报的好像是aaa操作符64位不支持
但是为什么push,pop等一些操作符也报错呢
不知道是不是跟CPU和系统有关
下面是我随便复制的一个错误程序的代码- # adctest.s - An example of using the ADC instruction
- .section .data
- data1:
- .quad 7252051615
- data2:
- .quad 5732348928
- output:
- .asciz "The result is %qd\n"
- .section .text
- .globl _start
- _start:
- movl data1, %ebx
- movl data1+4, %eax
- movl data2, %edx
- movl data2+4, %ecx
- addl %ebx, %edx
- adcl %eax, %ecx
- pushl %ecx
- pushl %edx
- push $output
- call printf
- addl $12, %esp
- pushl $0
- call exit
复制代码 CPU信息- processor : 0
- vendor_id : AuthenticAMD
- cpu family : 15
- model : 72
- model name : AMD Turion(tm) 64 X2
- stepping : 2
- cpu MHz : 800.000
- cache size : 512 KB
- physical id : 0
- siblings : 2
- core id : 0
- cpu cores : 2
- fpu : yes
- fpu_exception : yes
- cpuid level : 1
- wp : yes
- flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm cr8_legacy
- bogomips : 1609.83
- TLB size : 1024 4K pages
- clflush size : 64
- cache_alignment : 64
- address sizes : 40 bits physical, 48 bits virtual
- power management: ts fid vid ttp tm stc
- processor : 1
- vendor_id : AuthenticAMD
- cpu family : 15
- model : 72
- model name : AMD Turion(tm) 64 X2
- stepping : 2
- cpu MHz : 800.000
- cache size : 512 KB
- physical id : 0
- siblings : 2
- core id : 1
- cpu cores : 2
- fpu : yes
- fpu_exception : yes
- cpuid level : 1
- wp : yes
- flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm cr8_legacy
- bogomips : 1609.83
- TLB size : 1024 4K pages
- clflush size : 64
- cache_alignment : 64
- address sizes : 40 bits physical, 48 bits virtual
- power management: ts fid vid ttp tm stc
复制代码 系统是
Linux SuSe 2.6.18.2-34-default #1 SMP Mon Nov 27 11:46:27 UTC 2006 x86_64 x86_64 x86_64 GNU/Linux
[ 本帖最后由 | 于 2007-7-27 01:26 编辑 ] |
|