在汇编语言中,将字符串进行运算,包含16进制
需要注意的是首先要将读取的ASCII码进行转换,使其能够成为进行运算的有效数字,在对于16进制的时候还需要检查其是否为字母
我们这里假设的是一空白(null)作为终止符
具体代码如下
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127SUB 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进制)内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复