注册 登录
编程论坛 汇编论坛

错误在哪里

dengjinbao 发布于 2011-04-21 13:19, 751 次点击
data segment
str db “This is an example for test!”
count=$-str
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov cx,count
lea bx,str
next:mov ax,[bx]
cmp ax,‘a’
jnz next1
inc dl
next1:inc bx
dec cx
jnz next
mov ah,4ch
int 21h
code ends
end start
找不到错误在哪里
顺便问一下用debug怎样调试与查看错误
7 回复
#2
dengjinbao2011-04-21 13:21
程序代码:
data segment
str db “This is an example for test!”
count=$-str
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov cx,count
lea bx,str
next:mov ax,[bx]
cmp ax,‘a’
jnz next1
inc dl
next1:inc bx
dec cx
jnz next
mov ah,4ch
int 21h
code ends
end start
错误在哪里啊!
本人刚刚学汇编
#3
zaixuexi2011-04-21 14:39
1. 编译问题.不要用中文引号
2. 看不懂你的逻辑,不明白你想表达什么意思
#4
fangdong652011-04-21 15:21
用汇编写程序,好强啊,佩佩服佩服!以前学过一段时间,不过现在差不多都忘啦,也看不出哪里错啦,不过比较明显的是正如二楼所说的不要用中文引号,对于编程中的一些代码尽量不要用中文。
#5
zaixuexi2011-04-21 15:24
回复 4楼 fangdong65
汇编不难学,看你能不能坚持了.
#6
dengjinbao2011-04-21 15:41
程序代码:
data segment
str db “This is an example for test!”
count=$-str
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov cx,count
lea bx,str
next:mov ax,[bx]
cmp ax,‘a’
jnz next1
inc dl
next1:inc bx
dec cx
jnz next
mov ah,4ch
int 21h
code ends
end start

不是中文引号的问题,题目是:统计一字符串中小写字母‘a’的个数,并将统计结果存放到DL寄存器中
#7
Djiqing2011-04-21 18:50
寄存器ax保存的数据不是000a,所以cmp ax,‘a’并不能正确把a查找出来并影响计数器flag;你返回的语句为什么不写成:mov ax,4c00h   int 21h 呢?(本人也是刚学,所以只是个人想法而不是标准答案,别的有没有错误就慢慢一边运行一边改正吧)
#8
情非得已2011-04-26 23:09
没找到错误 能写成这样 强
1