Официальный сайт студ.городка НГТУ
Программирование и БД » [asm]перевод слова в число 

#1  02.12.07 11:10

[asm]перевод слова в число

Существует ли функция перевода слова в число?
Как перевести, например, amount dw '20' в 20 в десятичной системе или в 14 в 16-теричной?
нужно для цикла, чтобы в cx загрузить число, а то со словом работает неправильно.

Offline

#2  02.12.07 13:52

Re: [asm]перевод слова в число

Дональдак, а нафига ты его как строку определяешь?

Offline

#3  02.12.07 14:09

Re: [asm]перевод слова в число

Перевод в десятичную (в di конец твоей строки, в которой записаны цифры числа, в cx её длина):

Код: assembler:

loop1:
    mov  bh,0
    mov  bl,[di]
    sub  bl,'0'
    push ax
    mov  ax,bx
    mov  bx,dx
    push dx
    mul  bx
    pop  dx
    mov  bx,ax
    mov  ax,dx
    push bx
    mov  bx,10
    mul  bx
    mov  dx,ax
    pop  bx
    pop  ax
    add  ax,bx
    dec  di
    dec  cx
    cmp  cx, 0
    jne  loop1

в ax будет результат

p.s. сам писал, поэтому может быть слегка перемудрил, не исключаю, что возможны и более простые реализации

Исправлено AntiGen (02.12.07 14:12)

Offline

#4  02.12.07 18:06

Re: [asm]перевод слова в число

Rastaman, А лучше amount db 2?
AntiGen, Спасибо большое! Сейчас попробую.

Offline

Программирование и БД » [asm]перевод слова в число 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.066 сек.
Выполнено 14 запросов.