Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
35 / 32 / 9
Регистрация: 17.09.2010
Сообщений: 210
1

Проверить число X на принадлежность диапазону [0, a]V[b, 255]

19.10.2011, 11:55. Показов 3932. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребята, тут парюсь с лабораторкой. Такая ситуация что на примитивном уровне я могу написать программу через условные переходы, типа вот этого:
Assembler
1
2
3
4
5
6
7
8
mov AX, X
mov BX, 0
cmp AX, BX
jge l1
mov Z, -1
jmp l2
l1: mov Z, 1
l2: ...
Вот вопрос следующий, как мне использовать правильно процедуры? Есть куча лит-ры понять не могу, хоть об стол бейся... И вот еще скажите мне какой лучше алгоритм действий использовать при написании этой лабы: Проверяет число X на принадлежность диапазону [0, a]V[b, 255] и возвращает 0, если
принадлежит, и 1 в противном случае (в качестве параметра передавать числа X, a, b).
И последний вопрос, что за числа передавать в X, a, и используя процедуры.

Не по теме:

ребята, фриланс не предлагайте, т.к. купить проще всего. мне надо самому понять. в общем любая подсказка - есть помощь. программу писать не прошу.

0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.10.2011, 11:55
Ответы с готовыми решениями:

Проверить принадлежность чисел диапазону
Пользователь вводит диапазон, а потом 5 чисел. Программа подсчитывает сколько из этих 5 чисел...

421 cannot connect to SMPT server 255.255.255.255 (255.255.255.255:25)
Добрый день! при вызове bool mSocket::Connect(int port,char* adr) { hostent* hn; ...

Проверить число на соответствие диапазону
Здравствуйте, имеется функция: void calc(float *p_x1, float *p_x2, float *p_h) { while (*p_x1 <...

Проверить принадлежит ли введенное число заданному диапазону
Введіть з клавіатури два числадля більшого з них числа перевірте чи знаходиться воно вдіапазоні від...

6
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
19.10.2011, 15:12 2
Костя Остертаг, поищи в инете книгу Пильщикова В. Н. "Assembler. Программирование на языке ассемблера IBM PC" очень хорошо всё объяснено!

программа, которая проверяет на принадлежность Х диапазону a<X<b без переходов
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
.286
.model tiny
.CODE
org 100h
start:  mov bl,X
    cmp A,bl
    db 0D6h; недокументированная команда SALC
    mov ah,al
    cmp bl,B
    db 0D6h
    and al,ah
    and ax,1
    xor ax,1
    retn
A db 6
B db 10
X db 7; проверялись значения 5,6,7,10,11
END start
0
766 / 310 / 11
Регистрация: 27.05.2011
Сообщений: 703
19.10.2011, 15:27 3
Цитата Сообщение от Mikl___ Посмотреть сообщение
db 0D6h; недокументированная команда SALC
Mikl___, а чё за функция если не секрет?
0
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
19.10.2011, 15:29 4
zzzyyyxxx,

Команда SALC
(Set register AL according to Carry flag)
Синтаксис команды: SALC
Семантика команды: установить регистр AL в соответствии с флагом CF.
Алгоритм работы: Если CF=1, то в AL установится значение 0FFh, если CF=0, то AL установится в 0.
Псевдокод: AL← –1×CF
Применение: SALC недокументированная команда, имеет машинный код 0D6h. Эквивалентна команде SBB AL,AL, но без изменения флагов CF, AF, PF, ZF.
Assembler
1
2
3
4
5
6
    XOR EAX,EAX;MOV EAX,0
    STC;установим флаг CF в 1
    DB 0D6h;код команды SALC,после ее выполнения AL=0FFh
    OR EAX,-1;MOV EAX,0FFFFFFFFh
    CLC;сбросим флаг CF в 0
    DB 0D6h; после выполнения команды SALC AL=0
2
766 / 310 / 11
Регистрация: 27.05.2011
Сообщений: 703
19.10.2011, 15:33 5
спасибо, а то может источником поделишься?
0
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
19.10.2011, 15:51 6
zzzyyyxxx, джентльмену верят на слово нашел в Ralf Brown's Interrupt List, в "Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2B: Instruction Set Reference, N-Z" про эту инструкцию не написано, но поддерживают ее все микропроцессоры от 8086 до Pentium 4
Ещё вот здесь есть http://www.faqs.org/faqs/assem... ral/part2/

25.3 SALC - SET AL ON CARRY
Mr. Collins describes this instruction a C programmers dream instruction for interfacing to assembly language procedures. This instruction will set the AL register to 00h or 0ffh depending on whether the carry flag is clear or set, respectively. This instruction is available on all x86 Intel processors.
1
766 / 310 / 11
Регистрация: 27.05.2011
Сообщений: 703
19.10.2011, 16:27 7
Mikl___, я тебе доверяю, но тут дело в другом, хочу посмотреть может ещё что интересное найдётся.
а так спасибо, новая инфа никогда не помешает, тем более такая.
0
19.10.2011, 16:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.10.2011, 16:27
Помогаю со студенческими работами здесь

Проверить число на принадлежность интервалу
Поле first — дробове число, ліва межа діапазона; поле second — дробове число, права межа діапазона....

Массив: Вычислить сумму элементов, лежащих на главной диагонали матрицы {Cÿ}, образованной следующим образом: Cÿ = aÿ + bÿ
Здравствуйте, дорогие форумчане!;) -------------------------------------- Помогите, пожалуйста,...

принадлежность чсила диапазону
как с помощью php можно выяснить принадлежит ли число заданному диапазону?

Проверка символов на принадлежность диапазону
Помогите пожалуйста с проеркой, делаю ее с помощью if else, а она почемуто не раотает. for ($i=0;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru