汇编中16进制装换成为其他进制(2,8,10)
来源:互联网 发布:李荣浩后羿知乎 编辑:程序博客网 时间:2024/05/01 03:49
16进制装换成为其他进制关键在于得到键盘输入, 并将它保存在BINARY的这个变量里面,宏定义直接调用,例子中有 DISP ‘=’,etc 。子程序的话要注意对主程序的信息的保护和恢复,我在这里使用的是在子程序里面去保护主程序的方式,你也可以在主程序调用子程序之前就对主程序的信息进行保护,另外调用子程序是:CALL 子程序名。16进制装换成为其他进制只需要除以其他进制将余数压栈商不为零的话继续除法。
**例如16进制的A 装换成为2进制:
A/2=5………0 余数0入栈
5/2=2……….1 余数1入栈
2/2=1……….0 余数0入栈
1/2=0………..1 余数1入栈(由于此时的商为0则停止除法了)
出栈后为1010(对应A)**
看懂本例子的关键要对以下的关键代码段理解透彻:
MOV CL,4
SAL BX,CL
LAST1:
SAL BL,1
RCL BINARY,1
DEC CL
JNZ LAST1
全部示例代码:
DISP MACRO NNN MOV AH,0EH MOV AL,NNN INT 10H ENDMDATAS SEGMENT USE16 MESG DB 'input 16 Decimal number',0DH,0AH,'$' BINARY DW 0DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATASSTART: MOV AX,DATAS MOV DS,AX mov AH,09H MOV DX,OFFSET MESG INT 21H MOV CH,4 WANT_IN: MOV AH,08H INT 21H ;等待输入 MOV BL,AL CMP AL,'0' JL BEL CMP AL,'9' JA NEXT1 JMP NEXT2 NEXT1: CMP AL,'A' JL BEL CMP AL,'F' JG BEL SUB BL,07H NEXT2: SUB BL,30H DISP AL MOV CL,4 SAL BX,CL LAST1: SAL BL,1 RCL BINARY,1 DEC CL JNZ LAST1 DEC CH JNZ WANT_IN DISP 'H' DISP '=' MOV CX,0 MOV AX,BINARY MOV BX,02H CALL MDIV MOV BX,08H CALL MDIV MOV BX,0AH CALL MDIV MOV AH,4CH INT 21HMDIV PROC NEAR PUSH AX ;在子程序中保护信息 PUSH BX PUSH CX PUSH DX LAST2: MOV DX,0 DIV BX PUSH DX INC CX CMP AX,0 JNE LAST2 AGA: POP DX ADD DL,30H DISP DL LOOP AGA DISP ' ' POP DX POP CX POP BX POP AX RETMDIV ENDP BEL: DISP 7 JMP WANT_INCODES ENDS END STARTTART
运行结果:
参考书籍:编译原理图文教程
1 0
- 汇编中16进制装换成为其他进制(2,8,10)
- 10进制换成为36 进制
- Java中十进制转换为其他进制的方法
- 汇编输入一个10进制转化为16进制并存储在段寄存器ds中
- 求一个数中任意的某一段,(可以转化为其他进制)
- 自定义函数 将十进制转化为16进制,将16换成 36的话,就可以转化为所有拼音字母的进制
- 汇编将32位转换为10进制输出
- 十进制转化为其他进制(C语言)
- java十六进制转化为其他进制 二进制转化为其他进制 十进制转化为其他进制案例
- 16进制数据流转换成C语言数组
- 把带符号的二进制数据(10进制显示) 来 换成十进制的数据
- 十进制转换为其他进制
- 十进制转换为其他进制
- 其他进制转化为十进制
- ip地址转化为其他进制
- 第八周项目三(1)—顺序串算法之将字符串S中所有值为c1的字符换成值为c2的字符
- OpenCV-证件照蓝底换成白底(或其他颜色如红色)
- JAVA进行进制转换,10进制转换为其他进制
- spring 之 PropertiesLoaderUtils 获取文件属性用法
- 深度学习的40种应用
- Codeforce 382总结
- Rotate List
- 流氓鲁大师劫持了我的谷歌浏览器
- 汇编中16进制装换成为其他进制(2,8,10)
- 单例设计模式
- (一)RocketMQ初步认知
- TCP_NODELAY 和 TCP_NOPUSH
- ckeditor 上传图片 关键过程和代码
- Java内存空间,基本数据类型,数组
- nginx源代码分析 - 启动(七) IO多路复用模型的使用
- java时间加减
- Css更改placeholder颜色