Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2011, 16:34   #1
Ялок
Пользователь
 
Регистрация: 25.12.2010
Сообщений: 11
По умолчанию является ли введенная строка 16-ым числом

Всем здравствуйте. Подскажите
Задание у меня такое.
Написать программу которая проверяет, является ли введенная с клавиатуры строка шестнадцатеричным числом.
Подскажите как проверить.
Есть какая то функция или еще что то?
Ялок вне форума Ответить с цитированием
Старый 26.03.2011, 16:40   #2
VadikV
Форумчанин
 
Аватар для VadikV
 
Регистрация: 08.01.2011
Сообщений: 226
По умолчанию

Проверяешь введенную строку на допустимые символы: [0..9, A..F]
если ок - число шестнадцатиричное.
icq 223-630-454
e-mail vysotskiy@list.ru
сайт http://www.big-library.net/
VadikV вне форума Ответить с цитированием
Старый 26.03.2011, 17:19   #3
Ялок
Пользователь
 
Регистрация: 25.12.2010
Сообщений: 11
По умолчанию

То есть нужно какжный символ из (допустим такой строки) 43а2 сравнивать с [0..9, A..F].
Или можно будет [0..9, A..F] записать в массив и уже эти 43а2 сравнивать с символами в массиве?
Ялок вне форума Ответить с цитированием
Старый 03.04.2011, 14:52   #4
Ялок
Пользователь
 
Регистрация: 25.12.2010
Сообщений: 11
По умолчанию

Код:
model small
.stack 100h
.data
mes1 db 'Vvedite stroku', 13,10, '$'
mes2 db 'Stroka Ivlaetsa 16-m chislom', 13,10, '$'
mes3 db 'Stroka NeIvlaetsa 16-m choslom', 13,10, '$'
max db 5 
len db 0
stin db 5 dup(?)
a db 4

.code
mov ax,@data
mov ds,ax
mov dx,offset mes1
mov ah,09h
int 21h
mov ah,0ah
mov dx,offset max
int 21h
mov si, offset max
mov dl,[si]
mov cx,10
mov cl,0
mov dl,[si]
mov bl,30
push cx
mov bh,0

label1_1: 
          cmp bh,a     ;bh- использую как счетчик когда буду увелчивать si
          je flop           
          mov dl,[si]
          cmp dl,bl
          je incc
          incc: inc cl    ;cl нужен мне для того чтобы удостовериться что ;все 4 символа из введенной строки совпадали
          inc bl  
          dec cx 
          cmp cx,0
          je poop   ;poop что востановить счетчик
        poop: 
pop cx 
inc si 
inc bh 
        loop label1_1

flop:
cmp cl,a 
je dop
dop: 
jmp Exit


Exit:
mov dx,offset mes2
mov ah,09h
int 21h
mov ah, 4ch
int 21h
ENDP

mov dx,offset mes3
mov ah,09h
int 21h
mov ah, 4ch
int 21h
END
Код компилируется, но работает не правильно....
В чем неправильность...?


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 03.04.2011 в 17:13.
Ялок вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить, является ли введённый текст действительным числом, на паскале? Раздва Помощь студентам 7 06.06.2010 17:11
Проверить является ли строка палиндромом. rrrl Microsoft Office Excel 2 30.05.2010 18:33
Как проверить является ли числом? killer12rus JavaScript, Ajax 1 18.05.2009 05:09
Как программно узнать не является ли слово в строке числом? SkAndrew Общие вопросы Delphi 10 07.05.2008 13:03