+ -
当前位置:首页 → 问答吧 → 菜鸟求高手帮助,很简单的问题,想了很久,帮帮我!!!!!!

菜鸟求高手帮助,很简单的问题,想了很久,帮帮我!!!!!!

时间: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>

作者: aichitangde   发布时间: 2011-10-31

ASSUME CS:CODE,DS:DATA,SS:DSSG ;这里SS:DSSG前面的逗号你写成中文的逗号了,改成英文的
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