所以我正在进行一些装配工作,而且在我跳到中间位置之前我会测试一些东西。
我要做的是:用户输入一个数字0或1.输出是数字和数字开头的任何字符(O表示一个或Z表示零)
因此0的输出应为0Z,1的输出应为1O
我有问题,因为它只适用于1,它不输出0的任何东西。我确定它是一个非常基本的错误,但如果有人能解释问题是什么&#39 ; d很可爱。
此外,如果任何人有初学者装配资源,他们建议我欣赏它。我找不到任何我特别喜欢的东西
rdint %eax
irmovl $1, %ecx
irmovl $0, %edx
subl %ecx, %eax
je output1
addl %edx, %eax
je output0
halt
output1:
irmovl $1, %ecx
wrint %ecx
irmovl $79, %ecx
wrch %ecx
halt
output0:
irmovl $0, %ebx
wrint %ebx
irmovl $90, %ebx
wrch %ebx
halt
感谢
答案 0 :(得分:1)
所以我弄清楚我做错了什么。我在subl上的语法是错误的,因为寄存器的顺序是错误的。这真是令人困惑,因为他们为什么会按照这个顺序拥有它们。无论如何,如果其他人正在努力装配我在过去的一小时内完成了本教程并帮助http://www.tutorialspoint.com/assembly_programming/(仍在寻找其他人,因为它不像我那样可读; d喜欢)
错误:
subl %ecx, %eax