求汇编高手!!!微机原理课程设计,查找字符串中给定字符首次出现的位置
要求字符给定,从键盘输入单个字符,enter键结束并显示该字符首次出现的位置。最好执行过。。送分多多哦!!跪求!!!...
要求字符给定,从键盘输入单个字符,enter键结束并显示该字符首次出现的位置。最好执行过。。送分多多哦!!跪求!!!
展开
1个回答
展开全部
调试通过!
DATAS SEGMENT
str1 db 'this is a computer$'
str2 db 0dh,0ah,'$'
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
mov ah,1 ;等待输入
int 21h
push ax
t1:
mov ah,7
int 21h
cmp al,0dh
jnz t1
lea dx,str2 ;回车换行
mov ah,9
int 21h
pop ax
lea si,str1
s1: ;查找
cmp byte ptr[si],'$'
jz s5
cmp al,[si]
jz s2
inc si
jmp s1
s2: ;找到输出
mov ax,si
inc ax
xor dx,dx
xor cx,cx
s3:
mov bl,10
div bl
inc cx
mov dl,ah
mov ah,0
push dx
cmp al,0
jnz s3
s4:
pop dx
add dl,30h
mov ah,2
int 21h
loop s4
jmp s6
s5: ;未找到输出
mov dl,'N'
mov ah,2
int 21h
s6:
mov ah,0
int 16h
MOV AH,4CH
INT 21H
CODES ENDS
END START
DATAS SEGMENT
str1 db 'this is a computer$'
str2 db 0dh,0ah,'$'
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
mov ah,1 ;等待输入
int 21h
push ax
t1:
mov ah,7
int 21h
cmp al,0dh
jnz t1
lea dx,str2 ;回车换行
mov ah,9
int 21h
pop ax
lea si,str1
s1: ;查找
cmp byte ptr[si],'$'
jz s5
cmp al,[si]
jz s2
inc si
jmp s1
s2: ;找到输出
mov ax,si
inc ax
xor dx,dx
xor cx,cx
s3:
mov bl,10
div bl
inc cx
mov dl,ah
mov ah,0
push dx
cmp al,0
jnz s3
s4:
pop dx
add dl,30h
mov ah,2
int 21h
loop s4
jmp s6
s5: ;未找到输出
mov dl,'N'
mov ah,2
int 21h
s6:
mov ah,0
int 16h
MOV AH,4CH
INT 21H
CODES ENDS
END START
更多追问追答
追问
你有汇编语言的软件吗?我想安装,我的电脑是windows7的系统,64位的。
追答
win7的我不知道用什么软件,我用的是masm for windows.
上海巴鲁图工程机械科技有限公司_
2022-05-15 广告
2022-05-15 广告
光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。光电编码器每转输出60(我们用老板没有说)个脉冲,五线制。其中两根为电源线,三根为脉冲线(A相、B相、Z)。电源的工作电压为 (+5~+24V)直流电源。光...
点击进入详情页
本回答由上海巴鲁图工程机械科技有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |