查看字符是否在0-9,A-F,a-f十六进制值之间的最佳方法

时间:2015-10-04 20:18:28

标签: assembly mips

我被给予一个ascii字,例如“ABcd1234”,然后我将十六进制值存储在$ a0寄存器中。然后我想遍历每个数字并查看它是否有效,这将介于0-9,A-F或a-f之间。我能够检查它是否小于0分支到另一个部分或者如果比f更大,分支到另一个部分,但我的问题是检查它是否在其他值之间。在9和A之间有7个无效字符,如果我的ascii字包含,我需要分支到我的代码的无效部分

1 个答案:

答案 0 :(得分:2)

如果您可以进行所声称的条件分支,那么进行所有检查并不困难。绘制流程图或编写伪代码。它不是火箭科学,只需要一点思考并了解ascii范围。

例如,

if (x < '0') goto invalid;
if (x < '9' + 1) goto valid;
if (x < 'A') goto invalid;
if (x < 'F' + 1) goto valid;
if (x < 'a') goto invalid;
if (x < 'f' + 1) goto valid;
invalid:

请参阅操作中的代码here