ХАНДЫФАР

Функция StringToIntegerEx анализирует строку, завершающуюся (\0) или 0, интерпретируя её содержимое как целое число, и возвращает это число. Функция StringToIntegerEx автоматически выравнивает стек на 2 байт.

Параметры:

  1. Указатель на строку, завершающуюся (\0) или 0, содержащую целое число.

Возвращаемое значение:

  • DS:AX: Целочисленное число, полученное из строки.

Состояние флагов:

  • Функция не изменяет состояние флагов.

Особенности:

  • Функция не изменяет значения регистров, кроме AX.

  1. title Автор: Довгополов Евгений Сергеевич
  2. .286C
  3. .model small
  4. .stack 100h
  5. data segment public
  6. ____string db "У меня есть 154 рубля\0"
  7. ____fmtout db "Он сказал, что у него "
  8. ___________db "есть только %d рубля!\0"
  9. data ends
  10. code segment public
  11. ____assume _ds:data, cs:code
  12. ____include Handyfar.inc
  13. ____include Handymac.inc
  14. ____main proc
  15. ________call____SetDataSegment
  16. ________pushs___ds:[string]
  17. ________call____StringToIntegerEx
  18. ________push____ax
  19. ________leaax___ds:[fmtout]
  20. ________call____PrintFormatString
  21. ________add_____sp, 2
  22. ________push____0
  23. ________call____ExitProcessEx
  24. ____main endp
  25. code ends
  26. end main
Функция StringToIntegerEx анализирует строку, завершающуюся (\0) или 0, интерпретируя её содержимое как целое число, и возвращает это число. Функция StringToIntegerEx автоматически выравнивает стек на 2 байт.

Параметры:

  1. Указатель на строку, завершающуюся (\0) или 0, содержащую целое число.

Возвращаемое значение:

  • DS:AX: Целочисленное число, полученное из строки.

Состояние флагов:

  • Функция не изменяет состояние флагов.

Особенности:

  • Функция не изменяет значения регистров, кроме AX.

  1. title Автор: Довгополов Евгений Сергеевич
  2. .286C
  3. .model small
  4. .stack 100h
  5. data segment public
  6. ____string db "У меня есть 154 рубля\0"
  7. ____fmtout db "Он сказал, что у него есть только %d рубля!\0"
  8. data ends
  9. code segment public
  10. ____assume _ds:data, cs:code
  11. ____include Handyfar.inc___________; Подключаем файл с функциями
  12. ____include Handymac.inc___________; Подключаем файл с макросами
  13. ____main proc
  14. ________call____SetDataSegment_____; Вызываем процедуру SetDataSegment
  15. ________pushs___ds:[string]________; Ложим на вершину стека адрес переменной string
  16. ________call____StringToIntegerEx__; Вызываем процедуру StringToIntegerEx(string) := AX
  17. ________push____ax_________________; 2-й: Ложим на вершину стека значение регистра ax
  18. ________leaax___ds:[fmtout]________; 1-й: Загружаем адрес строки формата fmtout в регистр ds:ax
  19. ________call____PrintFormatString__; Вызываем процедуру PrintFormatString(ax:fmtout, ax)
  20. ________add_____sp, 2______________; Выравниваем стек
  21. ________push____0__________________; Ложим на вершину стека байтовое значение кода возврата
  22. ________call____ExitProcessEx______; Вызываем процедуру ExitProcess(0)
  23. ____main endp
  24. code ends
  25. end main
Made on
Tilda