关于如何将汇编语言字符串进行运算(含16进制)
2021/12/15 12:46:52
本文主要是介绍关于如何将汇编语言字符串进行运算(含16进制),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在汇编语言中,将字符串进行运算,包含16进制
需要注意的是首先要将读取的ASCII码进行转换,使其能够成为进行运算的有效数字,在对于16进制的时候还需要检查其是否为字母
我们这里假设的是一空白(null)作为终止符
具体代码如下
SUB R1, R1, #1 MOV R0, #0 MOV R2, #0 //目前的 MOV R3, #0 //上一个操作字符 MOV R4, #0 //目前操作字符 READNEXTDEC: ADD R1, R1, #1 LDRB R2, [R1] CMP R2, #120 //寻找16进制 BEQ READNEXTHEX CMP R2, #0 BEQ APPLYOPERATOR CMP R2, #42 //进行乘法运算 BEQ APPLYOPERATOR CMP R2, #43 //进行加法运算 BEQ APPLYOPERATOR CMP R2, #45 //进行减法运算 BEQ APPLYOPERATOR SUB R2, #48 MOV R10, #10 MUL R4, R4, R10 ADD R4, R4, R2 B READNEXTDEC READNEXTHEX: ADD R1, R1, #1 LDRB R2, [R1] CMP R2, #120 BEQ READNEXTHEX CMP R2, #0 BEQ APPLYOPERATOR CMP R2, #42 //进行乘法运算 BEQ APPLYOPERATOR CMP R2, #43 //进行加法运算 BEQ APPLYOPERATOR CMP R2, #45 //进行乘法运算 BEQ APPLYOPERATOR CMP R2, #120 //遇见X进入16进制程序 BEQ READNEXTHEX CMP R2, #65 //如果是字母 BGE READTHISHEX SUB R2, #48 //ASCII码进行实际数字的转换 MOV R10, #10 MUL R4, R4, R10 ADD R4, R4, R2 B READNEXTDEC READTHISHEX: SUB R2, #55 MOV R10, #10 MUL R4, R4, R10 ADD R4, R4, R2 B READNEXTHEX APPLYOPERATOR: CMP R3, #0 BEQ ADD //遇见终止符 CMP R3, #4 BEQ ADD CMP R3, #5 BEQ SUB CMP R3, #6 BEQ MUL ADD: ADD R0, R0, R4 B STORENEXTOPERATOR SUB: SUB R0, R0, R4 B STORENEXTOPERATOR MUL: MUL R0, R0, R4 B STORENEXTOPERATOR STORENEXTOPERATOR: MOV R4, #0 CMP R2, #0 //遇见终止符 BEQ End_Main CMP R2, #43 //进行加法运算 BEQ SETADD CMP R2, #45 //进行剑法运算 BEQ SETSUB CMP R2, #42 //进行乘法运算 BEQ SETMUL CMP R2, #120 //在遇见‘x’的时候,表示进行16进制操作 BEQ READNEXTHEX SETADD: MOV R3, #4 B READNEXTDEC SETSUB: MOV R3, #5 B READNEXTDEC SETMUL: MOV R3, #6 B READNEXTDEC
这篇关于关于如何将汇编语言字符串进行运算(含16进制)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-20测试人员都是画画大神,让我看看谁还不会用代码图?
- 2024-05-20年薪百万的程序员都在用的摸鱼方式……
- 2024-05-19永别了,微服务架构!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了