Программирование сборки высокого уровня (HLA) - PullRequest
0 голосов
/ 15 апреля 2020

У меня проблемы с выяснением этого задания, которое я имею в HLA.

Напишите программу для создания таблицы номеров, как описано здесь. Эта таблица должна быть построена из единственного целочисленного значения, предоставленного пользователем. Программа отобразит квадрат 5X5 различных чисел. Введенное число должно появиться в виде буквы X по всей таблице, по диагонали по всей таблице. Каждое другое пятно, кроме рисунка X, должно быть заполнено числом. Эти избыточные числа должны начинаться с единицы, превышающей введенный номер, и увеличиваться на единицу для каждого дополнительного используемого избыточного числа.

Например, следующий вывод должен быть получен, когда пользователь вводит начальное значение 15:

Дайте мне начальное значение: 15

15 16 17 18 15

19 15 20 15 21

22 23 15 24 25

26 15 27 15 28

15 29 30 31 15

Например, когда пользователь вводит начальное значение 20, должен быть получен следующий вывод:

Дайте мне начальное значение: 20

20 21 22 23 20

24 20 25 20 26

27 28 20 29 30

31 20 32 20 33

20 34 35 36 20

(Подсказка: пожалуйста, не беспокойтесь о форматировании таблицы, если оно не совсем соответствует моему выше. Цель - попрактиковаться с HLA, а мы действительно не знаем, достаточно, чтобы получить идеальный интервал ...)

У меня есть следующий код, который я пробовал, но не могу понять. Я совершенно новичок в программировании HLA.

program tableX;

#include( "stdlib.hhf" );

// Initiate variable
static
tblX : int32 := 0; // tblX value

// Columns for row 1
column1 : int32 := 0;


// Start the program
begin tableX;

// Ask the user to input a value
stdout.put("Gimme a starting value: ");

// Get the user's inputted value
stdin.get(tblX);

// Get the value into the register EAX
mov(tblX, EAX);
mov(0, EBX);

mov(column1, EAX);
mov(1, EBX);

// Add the values
add(EAX, EBX);
add(1, tblX);

add(EAX, EBX);
add(1, column1);

// Put the value back into the tblX variable
mov(EBX, tblX);

// 1st row
stdout.put(tblX);
stdout.put(column1);




// End the program
end tableX;

У меня буквально возникают проблемы с выяснением, как отображать его в 5x5. Нужно ли добавлять больше переменных для столбцов для каждой строки. Я только добавил один столбец для целей тестирования. Если вы можете помочь с этим, я буду очень признателен. Спасибо!

...