网络上的查了关于大小写转换的内容,表示看不懂,可能是因为他们的思维比较缜密,规格化,而且语言不一样,所以看不懂吧,自己写了一个关于大小写字符串的转换,以及使用字符串输入输出函数的一段代码,感觉简单明了,适合比如说我这种初学者的理解
先来简单说一下大小写转换的问题,我的想法是直接将字符存到寄存器中,然后在寄存器中更改ASCII码,然后存回到字符串中,这个可以实现各种字符之间的转换
然后下面的例子将会用到子程序,循环的等基础内容
上机题目:键盘输入
内容:从键盘输入一串字母并保存在string开始的地址单元,要求将该字符串中的大写字母转化为小写字母后用子程序实现在终端上依次显示该串字母的 ASCII码。
string db n dup(?)
要求:熟练掌握子程序设计方法,画子程序、主程序流程图
我感觉灰常好理解,就不注释啦
include irvine32.inc
.data
string db 50 dup(?)
.code
main proc far
xor edx,edx
xor esi,esi
lea edx,string
mov ecx,50
call readstring
lop1:
cmp string[esi],'Z'
jg next
mov ah,string[esi]
add ah,20h
mov string[esi],ah
next:
inc esi
cmp string[esi],'z'
jg next1
cmp string[esi],'A'
jl next1
jmp lop1
next1:
lea edx,string
mov ecx,50
call writestring
call crlf
call decbin
exit
main endp
decbin proc near
xor esi,esi
lop2:
xor eax,eax
mov al,string[esi]
call writeint
call crlf
inc esi
;cmp string[esi],'A'
;jl nextx
cmp string[esi],'z'
jg nextx
cmp string[esi],'a'
jl nextx
jmp lop2
nextx:
;mov al,string[esi]
;call writeint
ret
decbin endp
end main
顺便贴上有点相关的一道题目吧,CSDN是我的笔记本233
上机题目:代码转换
内容:用子程序设计的方法,分别把BUF字单元中的四位十六进制数转换为ASCII码存入MAS开始的单元中,并在终端上显示MAS开始的4个字节单元。
BUF DW X
MAS DB 4 DUP(?)
要求:熟练掌握子程序设计方法
IUDE IRVINE32.INC
.DATA
BUF DW ?
MAS DB 4 DUP(?)
.CODE
MAIN PROC FAR
XOR EAX,EAX
CALL READHEX
MOV BUF,AX
CALL DECBIN
EXIT
MAIN ENDP
;;;;;;;;;;;;
;;;;;;;;;;;;
DECBIN PROC NEAR
PUSH EAX
PUSH ECX
XOR ESI,ESI
XOR ECX,ECX
MOV CL,04H
;;;;;;;;;;;;;;;;;;;;;;
LOP1:
MOV DX,BUF
ROL DX,04H
MOV BUF,DX
AND DL,0FH
CMP DL,0AH
JL NEXT
ADD DL,7H
NEXT:
ADD DL,30H
MOV MAS[ESI],DL
MOVZX EAX,MAS[ESI]
CALL WRITEINT
CALL CRLF
INC ESI
LOOP LOP1
POP EAX
POP ECX
RET
DECBIN ENDP
;;;;;;;;;;;;;;;;;;;;;;
END MAIN