求高手编写汇编语言程序,不用太长,能实现功能即可
1、编写求和的子程序,求数组ARRAY中所有元素之和并存于SUM单元中。(ARRAY中自己随便定义几个DB数,要用存储单元传递参数的方法)2、试编写一个求字变量绝对值的子...
1、编写求和的子程序,求数组ARRAY中所有元素之和并存于SUM单元中。(ARRAY中自己随便定义几个DB数,要用存储单元传递参数的方法)
2、试编写一个求字变量绝对值的子程序。
注意:上面两个要用子程序 展开
2、试编写一个求字变量绝对值的子程序。
注意:上面两个要用子程序 展开
1个回答
展开全部
1. data1 segment
array db ?,?,?,?
data1 ends
code1 segment
assume cs:code1,ds:data1
start: mov ax,data1
mov ds,ax
mov cl,4
mov ax, array
Lea si,array+1
again: add ax ,[si]
cmp si,4
jge next1
inc si
loop again
next1: mov sum,ax
mov ah,4ch
int 21h
code1 ends
end start //这是一个主函数,需要子函数的话,只需把开头改成值函数形式即可
2. abs proc
cmp ax,0
jge next //如果ax里放的变量大于0,则转向next,返回ax里的值。
neg ax //否则就对ax进行求绝对值,这就是求绝对值的方法。
next: ret
abs endp
array db ?,?,?,?
data1 ends
code1 segment
assume cs:code1,ds:data1
start: mov ax,data1
mov ds,ax
mov cl,4
mov ax, array
Lea si,array+1
again: add ax ,[si]
cmp si,4
jge next1
inc si
loop again
next1: mov sum,ax
mov ah,4ch
int 21h
code1 ends
end start //这是一个主函数,需要子函数的话,只需把开头改成值函数形式即可
2. abs proc
cmp ax,0
jge next //如果ax里放的变量大于0,则转向next,返回ax里的值。
neg ax //否则就对ax进行求绝对值,这就是求绝对值的方法。
next: ret
abs endp
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询