大写字母转换成小写字母
本帖最后由 李亖 于 2012-5-24 11:45 编辑DATA SEGMENT
MEM0 DB 128
ACTLEN0 DB ?
CHARS0 DB 128(?)
MEM1 DB 128
ACTLEN1 DB ?
CHARS1 DB 128(?)
STRING0 DB 'Please Input(A~Z):
求大神们看看到底是哪里有问题,不胜感激!
STRING1 DB 0DH,0AH,'The Result Is:
求大神们看看到底是哪里有问题,不胜感激!
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA
START: MOV AX, DATA
MOV DS, AX
LEA DX, STRING0
MOV AH, 09H ;显示提示信息STRING0
INT 21H
LEA BX, MEM0
MOV AH, 0AH ;输入字母
INT 21H
MOV CL, ACTLEN0 ;设置循环次数
LEA SI, CHARS0 ;取输入的字符串的首地址
LEA DI, MEM1
CHANGE: XOR BX, BX
MOV BL,
ADD BL, 20H
MOV DI, BL ;存储转换后的字母
INC SI ;取下一个字母
INC DI ;取下一个存储地址
LOOP CHANGE
OUTPUT: LEA DX, STRING1
MOV AH, 09H ;显示提示信息STRING1
INT 21H
XOR CX, CX
MOV CL, ACTLEN1 ;取转换后的字母的总长度
LEA DX, CHARS1 ;取转换后的字母的首地址
MOV BX, DX
ADD BX,CX ;得到转换后字母的尾地址
MOV BYTE PTR,'
求大神们看看到底是哪里有问题,不胜感激!
;在字母后插入$
LEA DX, MEM1
MOV AH, 09H ;显示转换后的字母
INT 21H
MOV AH, 4CH
INT 21H
CODE ENDS
END START
求大神们看看到底是哪里有问题,不胜感激!我晕代码真不好复制,出现求大神。。的地方是“$'”
assume cs:code,ds:data,ss:stack
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;函数功能:将输入的大写字母转换为小写
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
data segment
dwStrMaxLen dw0
dwStrLen dw0
szHintLen db'Please input the max length of words:',0dh,0ah,'$'
szHintText db'Please input the content:',0dh,0ah,'$'
szHintChange db'Text changed is:',0dh,0ah,'$'
szInputBuf db128 dup (?)
szOutBuf db128 dup (?)
data ends
stack segment
db32dup (0)
stack ends
code segment
start: mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,20h
call ShowHintLen
call InputHintLen
call ShowHintText
call InputHintText
call TextChange
call ShowHintChange
call ShowText
jmpStop
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;显示提示字符(输入最大长度)
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ShowHintLen:
mov ah,9
mov dx,offset szHintLen
int 21h
ret
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;处理输入最大长度,ds:dwStrMaxLen保存结果,最大128
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
InputHintLen:
push bx
push cx
push dx
push es
push si
xor bx,bx
xor dx,dx
mov ax,0b800h ;设定显示的初始位置
mov es,ax
mov si,160*4
Input1:mov ah,0
int 16h
cmp al,0dh;回车结束输入
jeBack1
cmp al,30h
jbBack1
cmp al,39h;判断是否为数字0-9
jaBack1
push ax
mov ax,ds:dwStrMaxLen
mov bl,10
mul bl ;获取已经输入的数据,*10
pop bx
and bx,00ffh
orbx,2c00h
mov es:,bx
add si,2 ;显示输入的字符
and bx,000fh ;获得新输入的数据
add ax,bx
mov ds:dwStrMaxLen,ax
jmp Input1
Back1:pop si
pop es
pop dx
pop cx
pop bx
cmp ds:dwStrMaxLen,128 ;设置最大输入长度
jb Back1_Ret
mov ds:dwStrMaxLen,128
Back1_Ret: ret
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;显示提示字符(输入字符)
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ShowHintText:
mov ah,9
mov dx,offset szHintText
int 21h
ret
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;处理输入字符,ds:szInPutBuf保存结果,最大128,回车结束
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
InputHintText:
push bx
push cx
push dx
push es
push si
xor bx,bx
xor dx,dx
mov ax,0b800h ;设定显示的初始位置
mov es,ax
mov si,160*5
mov cx,ds:dwStrLen
Input2:mov ah,0
int 16h
cmp al,0dh;回车结束输入
jeBack2
mov ds:szInputBuf,al
inc bx
and ax,00ffh
or ah,2ch
mov es:,ax
add si,2 ;显示输入的字符
mov ax,ds:dwStrLen
inc ax
mov ds:dwStrLen,ax;保存输入字符的长度
loop Input2
Back2:pop si
pop es
pop dx
pop cx
pop bx
ret
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;处理输入字符的转换,ds:szOutBuf保存结果
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
TextChange:
push bx
push cx
push dx
push es
push si
xor bx,bx
xor dx,dx
mov cx,ds:dwStrLen
Change: mov al,ds:szInputBuf
cmp al,'A'
jb Next1
cmp al,'Z'
ja Next1
oral,20h
Next1: mov ds:szOutBuf,al
inc bx
loop Change
Back3: pop si
pop es
pop dx
pop cx
pop bx
ret
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;显示提示字符(字符转换)
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ShowHintChange:
mov ah,9
mov dx,offset szHintChange
int 21h
ret
ShowText:
push bx
push cx
push dx
push es
push si
xor bx,bx
xor dx,dx
mov ax,0b800h
mov es,ax
mov si,160*6
mov cx,ds:dwStrLen
Show: mov al,ds:szOutBuf
mov ah,2ch ;设定颜色
mov es:,ax
add si,2
inc bx
loop Show
Back4: pop si
pop es
pop dx
pop cx
pop bx
ret
Stop:
mov ax,4c00h
int 21h
code ends
end start fujian810 发表于 2012-5-25 10:48 static/image/common/back.gif
assume cs:code,ds:data,ss:stack
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
:L大哥 这么高级的东东 我还没学到那个水平 我就是想问哈我的代码中有哪些错误,为何转换后没有存储
页:
[1]