gpt4 book ai didi

linux - assembly 师返回非数字

转载 作者:太空宇宙 更新时间:2023-11-04 12:44:21 24 4
gpt4 key购买 nike

<分区>

我尝试用 Assembly 编写我的第一个非常简单的程序。它应该以两位数作为输入,并对其进行加减乘除运算。我目前不关心当您输入 5 和 5 之类的数字时程序如何执行(它们的总和和乘积不会正确显示),因为我还在学习,稍后会进一步扩展程序。现在,除除法外,一切都像魅力一样。例如,当输入 4 和 2 时,它返回商下的字母 'r'。应该执行此操作的代码是:

;lastly, division

mov eax, SYS_WRITE
mov ebx, STDOUT
mov ecx, msg6
mov edx, len6
int 0x80

mov ax, [num1]
sub ax, '0'

mov ebx, [num2]
sub ebx, '0'

div ebx
add al, '0'

add ah, '0' ;in case there is a remainder

mov [quot], al
mov [rem], ah

mov eax, SYS_WRITE
mov ebx, STDOUT
mov ecx, quot
mov edx, 1
int 0x80

mov eax, SYS_WRITE
mov ebx, STDOUT
mov ecx, spacer
mov edx, len8
int 0x80

mov eax, SYS_WRITE
mov ebx, STDOUT
mov ecx, msg7
mov edx, len7
int 0x80

mov eax, SYS_WRITE
mov ebx, STDOUT
mov ecx, rem
mov edx, 1
int 0x80

仅作记录,msg6 只是消息:“商是:”,msg7 是消息“余数是:”。 num1num2 是输入的数字。 spacer 是我在结果之间输入间距的方式。提前致谢!

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com