Найти в Дзене
Old Programmer

Программирование на ассемблере (преобразование строки в число). Статья 4

Мои другие статьи по ассемблеру Все ссылки на статьи и ролики моего канала Old Programmer, распределенные по темам: Поймал себя на мысли, что, пожалуй, только по ассемблеру я излагаю материал довольно последовательно. Может быть нужно и в других темах навести порядок? Я подумаю. Что касается ассемблера. Конечно это моя любовь. Я занимался им многие годы. Программировал, написал несколько книг. Это захватывающее дело. Но GNU assembler я ранее не использовал - должен же и я также получать некоторую пользу от моих же опусов. Впрочем, отличие этого ассемблера от ассемблера Intel не существенное. В конце концов команды то процессорные и называются они одинаково. Преобразования строки в число на ассемблере В прошлой статье я рассматривал преобразование целого числа в строку, сегодня разберем обратную задачу. Кстати, я вам совершенно авторитетно скажу, что преобразование числа в строку и обратно, одно из самых распространенных преобразований в программировании. И каким бы вы языком не заним
Оглавление

Мои другие статьи по ассемблеру

Программирование на ассемблере (преобразование целого числа в строку). Статья 3
Old Programmer14 августа 2020
Ассемблер на платформе x86-64, Linux, программирование. Статья 1 (регистры, syscall)
Old Programmer5 августа 2020
Из записок старого программиста. Завещание старых мастеров. Ассемблер (книга)
Old Programmer3 августа 2020

Все ссылки на статьи и ролики моего канала Old Programmer, распределенные по темам:

Программирование. Тематическое оглавление моего Zen-канала (Old Programmer)
Old Programmer17 августа 2020

Поймал себя на мысли, что, пожалуй, только по ассемблеру я излагаю материал довольно последовательно. Может быть нужно и в других темах навести порядок? Я подумаю. Что касается ассемблера. Конечно это моя любовь. Я занимался им многие годы. Программировал, написал несколько книг. Это захватывающее дело. Но GNU assembler я ранее не использовал - должен же и я также получать некоторую пользу от моих же опусов. Впрочем, отличие этого ассемблера от ассемблера Intel не существенное. В конце концов команды то процессорные и называются они одинаково.

Преобразования строки в число на ассемблере

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

Программа, которая переводит строку в число, представлена в asm3.s. Как обычно я ее очень подробно прокомментировал. Но некоторые общие замечания все таки сделаю. Во-первых, для того, чтобы из кода цифры получить саму цифру нужно вычесть 48 (кодировку надо знать). Во-вторых, перевод из строки в число осуществляется по простой формуле. Например, если мы имеем число 365, то оно может быть представлено как 1*5 + 10*6 +100*3. Т.е. если мы знаем цифры числа, то само число получается именно так. В нашей программе мы делаем ровно это же. Начинаем с самой младшей цифры, т.е. с конца строки (sic!).

Ну и не забываем, как транслировать программу:

as --64 asm3.s -o asm3.o
ld -s asm3.o -o asm3

Пока, юные и не только любители ассемблера. Будем получать удовольствие от программирования. Подписываемся на мой канал Old Programmer.

Фрагмент программы  asm3.s
Фрагмент программы asm3.s