ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:66.83KB ,
资源ID:7970558      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7970558.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编语言 大小写与进制转换.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汇编语言 大小写与进制转换.docx

1、汇编语言 大小写与进制转换初始时界面:1.大小写字母的相互转换2.二进制数向16进制数的转换3. 16进制数向2进制数的转换4. 16进制数向10进制数的转换源程序:DATAS SEGMENTmenu DB 0AH, 0DH, - DB 0AH, 0DH, Please choice action:, 0AH, 0DH DB 0AH, 0DH, 1.Letter change DB 0AH, 0DH, 2.Binary to Hexadecimal DB 0AH, 0DH, 3.Hexadecimal to Binary DB 0AH, 0DH, 4.Hexadecimal to Decima

2、l DB 0AH, 0DH, q.Exit DB 0AH, 0DH, -, 0AH, 0DH,$STR1 DB 0AH, 0DH, Please input a Letter, 0AH, 0DH,$STR11 DB 0AH, 0DH, The big Letter is:, 0AH, 0DH,$STR12 DB 0AH, 0DH, The litte Letter is:, 0AH, 0DH,$STR13 DB 0AH, 0DH, Please confirm you just inputed is a Letter, 0AH, 0DH,$STR2 DB 0AH, 0DH, Please in

3、put the binary string, Enter to confirm, 0AH, 0DH, $STR21 DB 0AH, 0DH, The string Hexadecimal is:, 0AH, 0DH, $STR3 DB 0AH, 0DH, Please input the Hexadecimal string, Enter to confirm, 0AH, 0DH, $STR31 DB 0AH, 0DH, change to binary is:, 0AH, 0DH, $STR4 DB 0AH, 0DH, change to Decimal is:, 0AH, 0DH, $DA

4、TAS ENDSCODES SEGMENTASSUME CS: CODES, DS: DATAS;宏定义 字符输入charin MACRO ;宏定义无参数的字符输入功能 MOV AH, 01H ;系统调用 输入一个字符用于功能选择 INT 21H ;字符默认输入到AL中ENDM;宏定义 数字输入 数字输入到AL中numin MACRO charin SUB AL, 48ENDM;宏定义 字符串输入strin MACRO STRINGIN ;将字符串输入到字符串STRINGIN中 LEA DX, STRINGIN ;将STRINGIN的偏移地址送到DX寄存器 MOV AH, 0AH ;0AH字符

5、串输入功能 INT 21H ;调用系统中断ENDM ;宏定义 字符输出charout MACRO outchar ;宏定义 将字符outchar输出 PUSH AX PUSH DX MOV DL, outchar MOV AH, 02H ;系统调用 输出字符outchar INT 21H ;调用系统中断 调用过程中会改变AL中的值,故将AX中的值入栈保存 POP DX POP AXENDM;宏定义 数字输出numout MACRO outnum PUSH AX PUSH DX MOV DL, outnum ADD DL, 48 ;将数值转换为对应得数值字符 MOV AH, 02H ;系统调用

6、输出字符outchar INT 21H ;调用系统中断 调用过程中会改变AL中的值,故将AX中的值入栈保存 POP DX POP AXENDM;宏定义 字符串输出strout MACRO STRINGOUT ;将字符串STRINGOUT输出 PUSH AX PUSH DX LEA DX, STRINGOUT ;将STRIN的偏移地址送到DX寄存器 MOV AH, 9 ;09H字符串输出功能 INT 21H ;调用系统中断 POP DX POP AXENDM;宏定义 换行endl MACRO ;宏定义换行 PUSH AX PUSH BX PUSH CX PUSH DX MOV DL, 0AH ;

7、先输出垂直Tab键 MOV AH, 2 INT 21H ;调用系统中断实现输出 MOV DL, 0DH ;再将输出输出调至段首 INT 21H ;调用系统中断 POP DX POP CX POP BX POP AXENDM;宏定义 以baseNum进制输出AX中的数值outAX MACRO baseNum ;宏定义换行 PUSH AX PUSH BX PUSH CX PUSH DX MOV BX, baseNum ;将要转换成的进制存入BX作为除数 CALL outAXp ;调用进制输出过程 POP DX POP CX POP BX POP AXENDM;过程定义 以baseNum进制形式输出

8、存放在AX中的数值过程outAXp PROC MOV DX, 0 ;初始化DX配合AX一起进行处罚操作 MOV CX, 0 ;用CX计数取得个余数个数 outAXp_Circle: CMP AX, 0 ;判断AX中的值是否为0 JE outAXp_NEXT ;是则跳转 DIV BX ;不是则进行除10运算 商保存在AX中 余数保存在DX中 PUSH DX ;将对10取到的余数入栈保存 MOV DX, 0 ;将DX中的余数清空 以便下一步对AX中的数进行除10运算 INC CX ;计数循环取得的余数个数 JMP outAXp_Circle outAXp_NEXT: ;循环输出取得的余数 POP

9、AX CMP AL, 10 ;当余数小于10时,直接将数值输出 JB nout ADD AL, 55 ;否则将余数转化为对应的字符10对应字符A charout AL JMP cout nout: numout ALcout: LOOP outAXp_NEXT RET outAXp ENDP;宏定义 以baseNum进制输入数据串到AX中,可输入2-37进制inAX MACRO baseNum ;宏定义换行 PUSH BX PUSH CX PUSH DX MOV CX, baseNum ;将要转换成的进制存入BX作为除数 CALL inAXp ;调用进制输入过程 POP DX POP CX P

10、OP BXENDM;过程定义 以baseNum进制形式输出存放在AX中的数值过程inAXp PROC MOV AX, 0inAXp0: PUSH AXinAXp1: charin ;逐个字符进行输入, 结果存放到AX中 CMP AL, 13 JE inAXE ;当按下Enter键后跳转AX的输出 CMP AL, 0 JB inAXp1 ;当输入字符小于0时,跳转inAXp1,跳转重新进行字符输入 CMP AL, 9 JA inAXnext1 ;当输入字符大于9时,跳转inAXnext1进一步进行比较 SUB AL, 48 ;当字符在0-9之间时,将字符转化为对应的数值 JMP inAXnum

11、;跳转数值输入 inAXnext1: CMP AL, A JB inAXp1 ;当输入字符小于A时,跳转重新进行字符输入 CMP AL, Z JA inAXnext2 ;当输入字符大于Z时,跳转inAXnext2进一步进行比较 SUB AL, 55 ;当字符在A-Z之间时,将字符转化为对应的数值,并跳转到数值输入 JMP inAXnum inAXnext2: CMP AL, a JB inAXp1 ;当输入字符小于A时,跳转重新进行字符输入 CMP AL, z JA inAXp1 ;当输入字符小于A时,跳转重新进行字符输入 SUB AL, 87 ;当字符在a-z之间时,将字符转化为对应的数值,

12、并跳转到数值输入 JMP inAXnum inAXnum:MOV BH, 0 ;将数值送到AX中 MOV BL, AL POP AX CMP AX, 0 ;当AX中的数值为0时,跳过乘法操作 JE inAXadd MUL CX ;乘以CX中的进制基数inAXadd:ADD AX, BX JMP inAXp0 inAXE: POP AX ;将计算得到的数值出栈到AX中 RET inAXp ENDPSTART: MOV AX, DATAS ;将数据段地址送到AX中 MOV DS, AX ;由AX转送到送到DS P0: strout menu ;字符串输出宏调用 输出menu的提示菜单 charin

13、 ;宏调用 字符输入 选择相应功能 CMP AL, 1 JE P1 CMP AL, 2 JE P2 CMP AL, 3 JE P3 CMP AL, 4 JE P4 CMP AL, q JE Pq CMP AL, Q JE Pq JMP P0 P1: endl strout STR1 charin ;输入字母到AL中 CMP AL, A JB outrange ;当字符小于A时超出范围,给出提示信息 CMP AL, Z JA cmpNext ;当字符大于Z时进一步进行范围的确定 ADD AL, 32 ;输入的字符范围在A-Z之间时转换为小写字母 strout STR12 ;输出AL中的字符前给出

14、提示信息 JMP outAL cmpNext: CMP AL, a JB outrange ;当字符小于a时超出范围,给出提示信息 CMP AL, z JA outrange ;当字符大于z时超出范围,给出提示信息 SUB AL, 32 ;输入的字符范围在a-z之间时转换为小写字母 strout STR11 ;输出AL中的字符前给出提示信息 outAL: charout AL JMP P0 outrange: strout STR13 ;超出范围,给出提示信息 JMP P0 P2: strout STR2 inAX 2 ;以2进制输入数据串到到AX中 endl strout STR21 outAX 16 ;以16进制的形式输出AX中的数值 JMP P0 P3: strout STR3 inAX 16 ;以16进制输入数据串到到AX中 endl strout STR31 outAX 2 ;以二进制的形式输出AX中的数据 JMP P0 P4: strout STR3 inAX 16 ;以16进制输入数据串到到AX中 endl strout STR4 outAX 10 ;以二进制的形式输出AX中的数据 JMP P0 Pq: MOV AH, 4CH ;调用 系统结束 INT 21H CODES ENDSEND START

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1