不懂

const718 2003-10-19 04:42:27
三个数求平均值
请大家帮我弄明白下面这段程序好吗?

DATA SEGMENT
ADATA DB 1H,2H,3H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATE ;这行有什么作用?
START: MOV AX,DATA
MOV DS,AX ;这两行也不明白为什么
MOV AL,DATA[O]
ADD AL,DATA[1]
ADD AL,DATA[2] ;还有怎么把它在屏幕上显示出来
;还有老师说要注意缢出,在程序里要怎样解决?
CODE ENDS
END START
...全文
27 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zming 2003-10-19
  • 打赏
  • 举报
回复
;
; 定义数据段
;
DATA SEGMENT
ADATA DB 1H,2H,3H
DATA ENDS

;
; 代码段开始
;
CODE SEGMENT

ASSUME CS:CODE,DS:DATE ; 指明CS存放Code段的段地址,DS存放Data段的段地址
; 注:原代码中有误,应为 DS:DATA

START: MOV AX,DATA
MOV DS,AX ; 置DS寄存器的内容为DATA的地址
; 保证数据段的段地址被正确地设置)

MOV AL,DATA[O]
ADD AL,DATA[1]
ADD AL,DATA[2] ; 三个数都已累加到AL中
; 题目是求三个数的平均值,怎么没见到除以3啊?
; 如果是在DOS下运行,则调用INT 21的相关中断
; 进行屏幕输出

; 这里有溢出的问题需要注意
; AL为8位,在数据段中定义的是三个8位的数,
; 如果这三个8位的数的累加和大于255,则产生溢出。
; 通过检查标志寄存器的进位标志可以知道是否溢出。
; 检查标志寄存器的相关指令及溢出位标志
; 请查阅相关资料(年代久远,忘记了)

CODE ENDS
END START

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧