菜鸟求高手帮助,很简单的问题,想了很久,帮帮我!!!!!!
时间:2011-10-31
来源:互联网
输入小写字母串,反向输出大写字母串
比如输入asdf 会输出FDSA 下面是我自己写的,错在那里啊
DATA SEGMENT
inbuf DB 100 ;可能输入的最大字符数
db 0 ;实际输入字符数
db 100 DUP('$') ;输入缓冲
DATA ENDS
DSSG segment
aa dw 512 dup(?)
DSSG ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ss:DSSG
START:
MOV AX,DATA
MOV DS,AX
mov di,OFFSET inbuf
;输入字符串
MOV AH,0AH
MOV DX,di
INT 21H
xor cx,cx
mov cl,[di+1] ;循环次数(输入字符数)
mov al,cl
lea si,[di+2] ;输入串起始地址
;循环比较
next:
cmp byte ptr [si],'a'
jb skip
cmp byte ptr [si],'z'
ja skip
sub byte ptr [si],20h ;转大写
skip:
push [si]
inc si
loop next
mov cl,al
next1:
pop [si]
inc si
loop next
MOV DL,0AH
MOV AH,02H
INT 21H
;输出字符串
lea DX,[di+2]
MOV AH,09H
INT 21H
MOV AH,0
INT 16H
MOV AX,4C00H
INT 21H
CODE ENDS
END START
下面是运行出现的错误
C:\masm>masm
Microsoft (R) Macro Assembler Version 5.00
Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.
Source filename [.ASM]: wo
Object filename [wo.OBJ]:
Source listing [NUL.LST]:
Cross-reference [NUL.CRF]:
wo.ASM(10): warning A4001: Extra characters on line
50668 + 450468 Bytes symbol space free
1 Warning Errors
0 Severe Errors
C:\masm>
比如输入asdf 会输出FDSA 下面是我自己写的,错在那里啊
DATA SEGMENT
inbuf DB 100 ;可能输入的最大字符数
db 0 ;实际输入字符数
db 100 DUP('$') ;输入缓冲
DATA ENDS
DSSG segment
aa dw 512 dup(?)
DSSG ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ss:DSSG
START:
MOV AX,DATA
MOV DS,AX
mov di,OFFSET inbuf
;输入字符串
MOV AH,0AH
MOV DX,di
INT 21H
xor cx,cx
mov cl,[di+1] ;循环次数(输入字符数)
mov al,cl
lea si,[di+2] ;输入串起始地址
;循环比较
next:
cmp byte ptr [si],'a'
jb skip
cmp byte ptr [si],'z'
ja skip
sub byte ptr [si],20h ;转大写
skip:
push [si]
inc si
loop next
mov cl,al
next1:
pop [si]
inc si
loop next
MOV DL,0AH
MOV AH,02H
INT 21H
;输出字符串
lea DX,[di+2]
MOV AH,09H
INT 21H
MOV AH,0
INT 16H
MOV AX,4C00H
INT 21H
CODE ENDS
END START
下面是运行出现的错误
C:\masm>masm
Microsoft (R) Macro Assembler Version 5.00
Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.
Source filename [.ASM]: wo
Object filename [wo.OBJ]:
Source listing [NUL.LST]:
Cross-reference [NUL.CRF]:
wo.ASM(10): warning A4001: Extra characters on line
50668 + 450468 Bytes symbol space free
1 Warning Errors
0 Severe Errors
C:\masm>
作者: aichitangde 发布时间: 2011-10-31
ASSUME CS:CODE,DS:DATA,SS:DSSG ;这里SS:DSSG前面的逗号你写成中文的逗号了,改成英文的
Assembly code
Assembly code
DATA SEGMENT inbuf DB 100 ;可能输入的最大字符数 db 0 ;实际输入字符数 db 100 DUP('$') ;输入缓冲 DATA ENDS DSSG segment aa dw 512 dup(?) DSSG ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:DSSG ;这里SS:DSSG前面的逗号你写成中文的逗号了,改成英文的 START: MOV AX,DATA MOV DS,AX mov di,OFFSET inbuf ;输入字符串 MOV AH,0AH MOV DX,di INT 21H xor cx,cx mov cl,[di+1] ;循环次数(输入字符数) mov al,cl lea si,[di+2] ;输入串起始地址 ;循环比较 next: cmp byte ptr [si],'a' jb skip cmp byte ptr [si],'z' ja skip sub byte ptr [si],20h ;转大写 skip: push [si] inc si loop next mov cl,al next1: pop [si] inc si loop next MOV DL,0AH MOV AH,02H INT 21H ;输出字符串 lea DX,[di+2] MOV AH,09H INT 21H MOV AH,0 INT 16H MOV AX,4C00H INT 21H CODE ENDS END START
作者: wangliangffaflgh 发布时间: 2011-10-31
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28