基本装配标签和跳跃

时间:2014-11-05 22:06:44

标签: assembly y86

所以我正在进行一些装配工作,而且在我跳到中间位置之前我会测试一些东西。
我要做的是:用户输入一个数字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

感谢

1 个答案:

答案 0 :(得分:1)

所以我弄清楚我做错了什么。我在subl上的语法是错误的,因为寄存器的顺序是错误的。这真是令人困惑,因为他们为什么会按照这个顺序拥有它们。无论如何,如果其他人正在努力装配我在过去的一小时内完成了本教程并帮助http://www.tutorialspoint.com/assembly_programming/(仍在寻找其他人,因为它不像我那样可读; d喜欢)
错误:

    subl %ecx, %eax