Как я могу разбить строку, содержащую 32-битное число на два 16-битный регистр - PullRequest
2 голосов
/ 12 января 2012

Я работаю над проектом по вычислению gcd двух 32-битных чисел в 16-битной арифметической сборке. Итак, как мне разбить строку, содержащую 32-битное число, на два 16-битных регистра?

Например: "1234567891" -> dx = 0100 1001 1001 0110 & ax = 0000 0010 1101 0011

1 Ответ

0 голосов
/ 12 января 2012

Вам нужно будет использовать нечто, называемое произвольной точностью. Это довольно распространенный процесс для вычисления чисел, которые больше, чем может обработать процессор.

Взгляните на этот предыдущий вопрос о стековом потоке, поскольку он содержит хороший ответ, чтобы объяснить, как этого можно достичь.

Помните, что если вы умножаете два 32-битных числа, вам может понадобиться 64-битное число для сохранения результата!

...