概述
在汇编语言中,将字符串进行运算,包含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进制)的全部内容,希望文章能够帮你解决关于如何将汇编语言字符串进行运算(含16进制)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复