汇编语言的一道题,能帮我看看怎么改吗?

jyshmiu 2016-12-04 05:40:21
题目是:设有一段英文,其字符变量名为ENG,并以$字符结束。试编写一程序,查对单词SUN在该文中的出现次数,并以格式“SUN:xxxx”显示出次数。
在网上找了一段代码,放到8086里编译时出现两个错误 :1.错误参数 LEA SI,TOP;2.非法指令:TOP LABLE WORD或者参数错误
代码如下:
DATAS SEGMENT
;此处输入数据段代码
ENG DB 'ABCDEFGHIJKLMNOPQRSTUVWXYZ$'
SUN DB 'JKL$'
DB 6 DUP (?)
TOP LABEL WORD
DB '$'
DATAS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
MOV ES,AX
XOR AX,AX ;保存出现次数
LEA BX,ENG
CLD
L1: MOV CX,4 ;这里比SUN的长度大1位
MOV SI,BX
LEA DI,SUN
REPE CMPSB
DEC SI ;回退一个字节
JCXZ L3 ;如果比较次数用完,表示匹配
INC BX
L2: CMP BYTE PTR [BX], '$'
JNE L1
JMP SHORT L4

L3: INC AX
MOV BX,SI
JMP SHORT L2

L4: LEA SI,TOP
MOV BX,10
L5: XOR DX,DX ;转换为十进制字符
DIV BX
OR DL,30H
DEC SI
MOV [SI],DL
CMP AX,0
JNE L5

MOV AH,9
LEA DX,SUN
INT 21H
MOV DX,SI
INT 21H

MOV AH,4CH
INT 21H
CODES ENDS
END START
...全文
860 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_23107797 2016-12-04
  • 打赏
  • 举报
回复
用masm5.1和masm6.15编译都可以通过,可能楼主的版本有问题。

21,459

社区成员

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

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