汇编语言 大小写与进制转换.docx
- 文档编号:7970558
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:11
- 大小:66.83KB
汇编语言 大小写与进制转换.docx
《汇编语言 大小写与进制转换.docx》由会员分享,可在线阅读,更多相关《汇编语言 大小写与进制转换.docx(11页珍藏版)》请在冰豆网上搜索。
汇编语言大小写与进制转换
初始时界面:
1.大小写字母的相互转换
2.二进制数向16进制数的转换
3.16进制数向2进制数的转换
4.16进制数向10进制数的转换
源程序:
DATASSEGMENT
menuDB0AH,0DH,'-----------------------------------------'
DB0AH,0DH,'Pleasechoiceaction:
',0AH,0DH
DB0AH,0DH,'1.Letterchange'
DB0AH,0DH,'2.BinarytoHexadecimal'
DB0AH,0DH,'3.HexadecimaltoBinary'
DB0AH,0DH,'4.HexadecimaltoDecimal'
DB0AH,0DH,'q.Exit'
DB0AH,0DH,'-----------------------------------------',0AH,0DH,'$'
STR1DB0AH,0DH,'PleaseinputaLetter',0AH,0DH,'$'
STR11DB0AH,0DH,'ThebigLetteris:
',0AH,0DH,'$'
STR12DB0AH,0DH,'ThelitteLetteris:
',0AH,0DH,'$'
STR13DB0AH,0DH,'PleaseconfirmyoujustinputedisaLetter',0AH,0DH,'$'
STR2DB0AH,0DH,'Pleaseinputthebinarystring,Entertoconfirm',0AH,0DH,'$'
STR21DB0AH,0DH,'ThestringHexadecimalis:
',0AH,0DH,'$'
STR3DB0AH,0DH,'PleaseinputtheHexadecimalstring,Entertoconfirm',0AH,0DH,'$'
STR31DB0AH,0DH,'changetobinaryis:
',0AH,0DH,'$'
STR4DB0AH,0DH,'changetoDecimalis:
',0AH,0DH,'$'
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS
;宏定义字符输入
charinMACRO;宏定义无参数的字符输入功能
MOVAH,01H;系统调用输入一个字符用于功能选择
INT21H;字符默认输入到AL中
ENDM
;宏定义数字输入数字输入到AL中
numinMACRO
charin
SUBAL,48
ENDM
;宏定义字符串输入
strinMACROSTRINGIN;将字符串输入到字符串STRINGIN中
LEADX,STRINGIN;将STRINGIN的偏移地址送到DX寄存器
MOVAH,0AH;0AH字符串输入功能
INT21H;调用系统中断
ENDM
;宏定义字符输出
charoutMACROoutchar;宏定义将字符outchar输出
PUSHAX
PUSHDX
MOVDL,outchar
MOVAH,02H;系统调用输出字符outchar
INT21H;调用系统中断调用过程中会改变AL中的值,故将AX中的值入栈保存
POPDX
POPAX
ENDM
;宏定义数字输出
numoutMACROoutnum
PUSHAX
PUSHDX
MOVDL,outnum
ADDDL,48;将数值转换为对应得数值字符
MOVAH,02H;系统调用输出字符outchar
INT21H;调用系统中断调用过程中会改变AL中的值,故将AX中的值入栈保存
POPDX
POPAX
ENDM
;宏定义字符串输出
stroutMACROSTRINGOUT;将字符串STRINGOUT输出
PUSHAX
PUSHDX
LEADX,STRINGOUT;将STRIN的偏移地址送到DX寄存器
MOVAH,9;09H字符串输出功能
INT21H;调用系统中断
POPDX
POPAX
ENDM
;宏定义换行
endlMACRO;宏定义换行
PUSHAX
PUSHBX
PUSHCX
PUSHDX
MOVDL,0AH;先输出垂直Tab键
MOVAH,2
INT21H;调用系统中断实现输出
MOVDL,0DH;再将输出输出调至段首
INT21H;调用系统中断
POPDX
POPCX
POPBX
POPAX
ENDM
;宏定义以baseNum进制输出AX中的数值
outAXMACRObaseNum;宏定义换行
PUSHAX
PUSHBX
PUSHCX
PUSHDX
MOVBX,baseNum;将要转换成的进制存入BX作为除数
CALLoutAXp;调用进制输出过程
POPDX
POPCX
POPBX
POPAX
ENDM
;过程定义以baseNum进制形式输出存放在AX中的数值过程
outAXpPROC
MOVDX,0;初始化DX配合AX一起进行处罚操作
MOVCX,0;用CX计数取得个余数个数
outAXp_Circle:
CMPAX,0;判断AX中的值是否为0
JEoutAXp_NEXT;是则跳转
DIVBX;不是则进行除10运算商保存在AX中余数保存在DX中
PUSHDX;将对10取到的余数入栈保存
MOVDX,0;将DX中的余数清空以便下一步对AX中的数进行除10运算
INCCX;计数循环取得的余数个数
JMPoutAXp_Circle
outAXp_NEXT:
;循环输出取得的余数
POPAX
CMPAL,10;当余数小于10时,直接将数值输出
JBnout
ADDAL,55;否则将余数转化为对应的字符10对应字符'A'
charoutAL
JMPcout
nout:
numoutAL
cout:
LOOPoutAXp_NEXT
RET
outAXpENDP
;宏定义以baseNum进制输入数据串到AX中,可输入2-37进制
inAXMACRObaseNum;宏定义换行
PUSHBX
PUSHCX
PUSHDX
MOVCX,baseNum;将要转换成的进制存入BX作为除数
CALLinAXp;调用进制输入过程
POPDX
POPCX
POPBX
ENDM
;过程定义以baseNum进制形式输出存放在AX中的数值过程
inAXpPROC
MOVAX,0
inAXp0:
PUSHAX
inAXp1:
charin;逐个字符进行输入,结果存放到AX中
CMPAL,13
JEinAXE;当按下Enter键后跳转AX的输出
CMPAL,'0'
JBinAXp1;当输入字符小于'0'时,跳转inAXp1,跳转重新进行字符输入
CMPAL,'9'
JAinAXnext1;当输入字符大于'9'时,跳转inAXnext1进一步进行比较
SUBAL,48;当字符在'0'-'9'之间时,将字符转化为对应的数值
JMPinAXnum;跳转数值输入
inAXnext1:
CMPAL,'A'
JBinAXp1;当输入字符小于'A'时,跳转重新进行字符输入
CMPAL,'Z'
JAinAXnext2;当输入字符大于'Z'时,跳转inAXnext2进一步进行比较
SUBAL,55;当字符在'A'-'Z'之间时,将字符转化为对应的数值,并跳转到数值输入
JMPinAXnum
inAXnext2:
CMPAL,'a'
JBinAXp1;当输入字符小于'A'时,跳转重新进行字符输入
CMPAL,'z'
JAinAXp1;当输入字符小于'A'时,跳转重新进行字符输入
SUBAL,87;当字符在'a'-'z'之间时,将字符转化为对应的数值,并跳转到数值输入
JMPinAXnum
inAXnum:
MOVBH,0;将数值送到AX中
MOVBL,AL
POPAX
CMPAX,0;当AX中的数值为0时,跳过乘法操作
JEinAXadd
MULCX;乘以CX中的进制基数
inAXadd:
ADDAX,BX
JMPinAXp0
inAXE:
POPAX;将计算得到的数值出栈到AX中
RET
inAXpENDP
START:
MOVAX,DATAS;将数据段地址送到AX中
MOVDS,AX;由AX转送到送到DS
P0:
stroutmenu;字符串输出宏调用输出menu的提示菜单
charin;宏调用字符输入选择相应功能
CMPAL,'1'
JEP1
CMPAL,'2'
JEP2
CMPAL,'3'
JEP3
CMPAL,'4'
JEP4
CMPAL,'q'
JEPq
CMPAL,'Q'
JEPq
JMPP0
P1:
endl
stroutSTR1
charin;输入字母到AL中
CMPAL,'A'
JBoutrange;当字符小于'A'时超出范围,给出提示信息
CMPAL,'Z'
JAcmpNext;当字符大于'Z'时进一步进行范围的确定
ADDAL,32;输入的字符范围在'A'-'Z'之间时转换为小写字母
stroutSTR12;输出AL中的字符前给出提示信息
JMPoutAL
cmpNext:
CMPAL,'a'
JBoutrange;当字符小于'a'时超出范围,给出提示信息
CMPAL,'z'
JAoutrange;当字符大于'z'时超出范围,给出提示信息
SUBAL,32;输入的字符范围在'a'-'z'之间时转换为小写字母
stroutSTR11;输出AL中的字符前给出提示信息
outAL:
charoutAL
JMPP0
outrange:
stroutSTR13;超出范围,给出提示信息
JMPP0
P2:
stroutSTR2
inAX2;以2进制输入数据串到到AX中
endl
stroutSTR21
outAX16;以16进制的形式输出AX中的数值
JMPP0
P3:
stroutSTR3
inAX16;以16进制输入数据串到到AX中
endl
stroutSTR31
outAX2;以二进制的形式输出AX中的数据
JMPP0
P4:
stroutSTR3
inAX16;以16进制输入数据串到到AX中
endl
stroutSTR4
outAX10;以二进制的形式输出AX中的数据
JMPP0
Pq:
MOVAH,4CH;调用系统结束
INT21H
CODESENDS
ENDSTART
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 大小写与进制转换 大小写 转换