mirror of
https://github.com/simon987/Much-Assembly-Required-Frontend.git
synced 2025-04-24 12:55:50 +00:00
Merge 630b96f54c6bfc5015d3e220ef0137bd6eb0a237 into 8f5e851b3186df67c3d78e8535779af53ff8f066
This commit is contained in:
commit
13e7a6d74f
@ -210,6 +210,12 @@ function getOperandType(text, result) {
|
|||||||
} else if (new RegExp('^(a|b|c|d|x|y)$').test(text.toLowerCase().substring(0, 1).toLowerCase())) {
|
} else if (new RegExp('^(a|b|c|d|x|y)$').test(text.toLowerCase().substring(0, 1).toLowerCase())) {
|
||||||
//Starts with 1-char register
|
//Starts with 1-char register
|
||||||
expr = text.substring(1);
|
expr = text.substring(1);
|
||||||
|
} else if (new RegExp('^(bp|sp)$').test(text.toLowerCase().substring(text.length - 2))) {
|
||||||
|
//Ends with 2-char register
|
||||||
|
expr = text.substring(0, text.length - 2);
|
||||||
|
} else if(new RegExp('^(a|b|c|d|x|y)$').test(text.toLowerCase().substring(text.length - 1))) {
|
||||||
|
//Ends with 1-char register
|
||||||
|
expr = text.substring(0, text.length - 1);
|
||||||
} else {
|
} else {
|
||||||
return OPERAND_INVALID;
|
return OPERAND_INVALID;
|
||||||
}
|
}
|
||||||
@ -223,13 +229,19 @@ function getOperandType(text, result) {
|
|||||||
//Remove white space
|
//Remove white space
|
||||||
expr = expr.replace(/\s+/g, '');
|
expr = expr.replace(/\s+/g, '');
|
||||||
//expr should now look like this: '+1' '-3' '+0x02' '+myLabel'
|
//expr should now look like this: '+1' '-3' '+0x02' '+myLabel'
|
||||||
|
//or have '-'/'+' as suffix instead of prefix
|
||||||
|
|
||||||
//Check for label
|
//Check for label
|
||||||
for (i = 0; i < result.labels.length; i++) {
|
for (i = 0; i < result.labels.length; i++) {
|
||||||
if (expr.substring(1) === result.labels[i]) {
|
if (expr.substring(1) === result.labels[i] || expr.substring(0, expr.length - 1) == result.labels[i]) {
|
||||||
return OPERAND_MEM_REG;
|
return OPERAND_MEM_REG;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// it should remove either ONE '+' or ONE '-'
|
||||||
|
// else the operand is invalid
|
||||||
|
expr = expr.replace(/\+|\-/, '');
|
||||||
|
|
||||||
//Check for number
|
//Check for number
|
||||||
if (!isNaN(Number(expr)) && Number(expr) === Math.floor(Number(expr))) {
|
if (!isNaN(Number(expr)) && Number(expr) === Math.floor(Number(expr))) {
|
||||||
return OPERAND_MEM_REG;
|
return OPERAND_MEM_REG;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user