-
Notifications
You must be signed in to change notification settings - Fork 3
Кастомные команды для последней лабы
Arthur Kupriyanov edited this page Aug 3, 2019
·
2 revisions
Для восьмой лабораторной работы необходимо создать свои команды в БЭВМ.
Чтобы не писать команду через WORD
- используйте определения кастомных команд:
-
ACOM
- арифметическая команда 7### -
BRCOM
- команда перехода D### -
FC## - FF##
- безадресная разрабатывается
-
ACOM F3
->WORD 70F3
-
BRCOM AA
->WORD D0AA
При интерпретации кода происходит проверка всех строк на совпадение на эти команды:
if (line[col].matches("(ACOM|BRCOM)")){
line = compileUserCustomCommand(line);
}
private String[] compileUserCustomCommand(String[] line){
int addr;
try {
addr = Integer.parseInt(line[1], 16);
} catch (NumberFormatException e){
return line;
}
if (line[0].toUpperCase().equals("ACOM")){
return ("WORD " + Integer.toString(Integer.parseInt("7000", 16) + addr, 16)).split(" ");
} else if (line[0].toUpperCase().equals("BRCOM")) {
return ("WORD " + Integer.toString(Integer.parseInt("D000", 16) + addr, 16)).split(" ");
} else {
return line;
}
}
Как видно из исходников, эта команда заменяется на WORD 7###
, а затем компилируется дальше.