发布网友
共5个回答
热心网友
首先把这些数值累加起来,除以这些数据的数量
比如 add ax,49
假设数量是8个
mov bx,8
div bx
其结果就在AX中
stack segment stack
dw 256 p(?)
stack ends
data segment
buf db 4,4,6,6 ;要求平均的四个数字
data ends
code segment
main proc far
assume cs:code,ds:data,ss:stack
start:
push ds
mov ax,0
push ax
mov ax,data
mov ds,ax
lea bx,buf
mov cx,4
xor ax,ax
lop:
add al,[bx]
inc bx
loop lop
average:
mov cl,4
div cl
mov ah,02h
add al,30h
mov dl,al
int 21h
mov ah,01h
int 21h
mov ax,4c00h
int 21h
ret
main endp
code ends
end start
扩展资料:
由于汇编指令系统庞大,因而需构建指令系统体系,其指令数量庞大,格式复杂,可记忆性差等。指令中最难的是指令所支持的寻址方式,其实质就是指令中操作数如何获取。
对于处理器而言,就是如何找到他所需的数据。但对于计算机底层的汇编语言而言,这种寻址方式将涉及大量的计算存储格式,与 复杂的存储管理方式紧密相关,因而难以理解。最后,汇编指令还关系到如何影响标志位,但处理器标志位非常复杂,因而对其机制掌握就比较困难。
参考资料来源:百度百科-汇编语言
热心网友
声明一下,我也是刚学的,如有不对的地方,请指正
stack segment stack
dw 256 p(?)
stack ends
data segment
buf db 4,4,6,6 ;放你要求平均的四个数字
data ends
code segment
main proc far
assume cs:code,ds:data,ss:stack
start:
push ds
mov ax,0
push ax
mov ax,data
mov ds,ax
lea bx,buf
mov cx,4
xor ax,ax
lop:
add al,[bx]
inc bx
loop lop
average:
mov cl,4
div cl
mov ah,02h
add al,30h
mov dl,al
int 21h
mov ah,01h
int 21h
mov ax,4c00h
int 21h
ret
main endp
code ends
end start
热心网友
可先将4个数加
再除以4
如果是要输入任何个数,求平均
那就另法
毕竟只有4个。。
热心网友
#include<stdio.h>
void main()
{
int num;
int a,b,c,d;
float ave;
printf("请输入一个四位数:");
scanf("%d",&num);
a=num/1000;//求出千位上的数;
b=num%1000/100;//求出百位上的数;
c=num%1000%100/10;//求出十位上的数;
d=num%1000%100%10;//求出个位上的数;
ave=(a+b+c+d)/4;
printf("四个数字的平均值为:%f",ave);
}
我现在在学网页编程,所以我已经对这忘记的差不多了,若不对还请原谅/但不管对还是错你要回我信息,谢谢!
热心网友
首先把这些数值累加起来,然后除以这些数据的数量
比如 add ax,49
...
假设数量是8个
mov bx,8
div bx
其结果就在AX中