再次求救!!!希望各位大侠继续帮助!!

winsonruan 2003-12-30 11:19:27
DATA SEGMENT
PATTERN DB 23H,24H,25H,26H
DISPLAY DB 80 DUP(' '),'$'
DATA ENDS

CSEG SEGMENT
assume cs:CSEG,ds:DATA
CLD
LEA SI,PATTERN
LEA DI,DISPLAY
MOV CX,80
REP MOVSB
MOV AH,09H
LEA DX,DISPLAY
INT 21H
CSEG ENDS
END

请问这条程序错在哪儿呢?我编译没有出错!但是在link的时候出现两条错误信息:
1.warning L4021:NO STACK SEGMENT
2.WARNING L4038:PROGRAM HAS NO STARTING ADDRESS


头一条我知道是说我没有定义堆栈段,但是第二条是怎么回事呢?我运行link后的程序进入了死循环!为什么会这样呢??我是用MASM611编译的!!敬请各位大侠赐教!!小弟在此谢过了!!
...全文
62 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
紫郢剑侠 2003-12-31
  • 打赏
  • 举报
回复
楼主程序的格式都不对呀.
NOV 2003-12-31
  • 打赏
  • 举报
回复
DATA SEGMENT
PATTERN DB 23H,24H,25H,26H
DISPLAY DB 80 DUP(' '),'$'
DATA ENDS

CSEG SEGMENT
assume cs:CSEG,ds:DATA

START:

MOV AX,DATA ;
MOV DS,AX ;记得要把DS和ES初始化
MOV ES,AX ;

CLD
LEA SI,PATTERN
LEA DI,DISPLAY
MOV CX,80
REP MOVSB
MOV AH,09H
LEA DX,DISPLAY
INT 21H

MOV AH,4CH ;程序结束用来返回DOS
INT 21H ;

CSEG ENDS
END START ;少了开始标号
我是跟着程序改的,我不太清楚楼主的意图,程序只能打印出一个'#'.因为24H就是字符'$',所以当打印到24H时就认为是输出结束了.
bluedreammer 2003-12-31
  • 打赏
  • 举报
回复
nod~
winsonruan 2003-12-31
  • 打赏
  • 举报
回复
csdsjkk()!!为什么你的程序运行后什么也没有显示呢??
4230544 2003-12-31
  • 打赏
  • 举报
回复
同意楼上,你是想打印把,不过你应该看清ASC码代表的意识,不是所有的ASC码都是可见的!
csdsjkk 2003-12-31
  • 打赏
  • 举报
回复
DATA SEGMENT
PATTERN DB 23H,24H,25H,26H
DISPLAY DB 80 DUP(' '),'$'
DATA ENDS

CSEG SEGMENT
assume cs:CSEG,ds:DATA
start:
mov ax,data
mov ds,ax
mov es,ax
CLD
LEA DI,DISPLAY
MOV CX,20
l1:
push cx
mov cx,4
LEA SI,PATTERN
REP MOVSB
pop cx
loop l1
mov cx,80
mov si,offset display
l2:
lodsb
mov dl,al
mov ah,2
INT 21H
loop l2
mov ah,4ch
int 21h
CSEG ENDS
END start
winsonruan 2003-12-31
  • 打赏
  • 举报
回复
SORRY!!忘了说了!
题目问题是这样的:定义一个数据区,它包含有23H,24H,25H和26H四个字符数据,把这个数据区复制20次,并显示出复制结果。

请问应该怎样处理呢??

21,459

社区成员

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

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