invoke ReadConsole, ADDR input, ADDR input_buf, 1, ADDR read, 0
invoke ReadConsole, input, ADDR input_buf, 1, ADDR read, 0
read
и written
должны быть размером не db
, а dd
. ReadConsole возвращает DWORD, а не BYTE и само собой возвращаемое значение read
забивает собой ранее полученное output
, там получаются нули и поэтому ничего не выводится.invoke ReadConsole, input, ADDR input_buf, 1, ADDR read, 0
производится чтение ОДНОГО символа, а выводитсяinvoke WriteConsoleA, output, ADDR input_buf, 3, ADDR written, 0
input_buf db КОЛИЧЕСТВО_БАЙТ_ПЛАНИРУЕМОЕ_ПРОЧИТАТЬ dup(?)
const [todo, setTodo] = useState([]) // todo: массив todo'шек. setTodo - сеттер, для изменения переменной todo
const deleteItem = (id) => { // Объявляем функцию deleteItem, которая принимает внутрь id интересующей todo
setTodo( // Устанавливаем новый state для переменной todo, которую объявили выше
todo.filter(item => { // Берем текущее состояние переменной todo.
// filter как forEach проходится по каждому элементу массива.
// Принимает в себя callback вида (item, i, array), где item - текущий элемент (соответствует array[i]), текущий индекс, текущий массив (который обходим)
// В функции callback'е ты должен вернуть булевое значение (true/false). Если true - элемент остается в массиве, если нет - убирается
return item.id !== id // Если id элемента не равен id, который хотим удалить - оставляем элемент в массиве, иначе убираем
})
);
const products = [
{ id: 1, price: 25 },
{ id: 2, price: 50 },
{ id: 3, price: 75 },
{ id: 4, price: 100 },
{ id: 5, price: 125 },
]
// Оставим продукты, которые только с ценой выше или равной 100
const filteredProducts = products.filter(product => product.price >= 100) // [{ id: 4, price: 100 }, { id: 5, price: 125 }]
select
groups.id_group,
groups.name_group,
count(distinct users.id_user) size_group
from groups
join users on users.id_group = groups.id_group
group by groups.id_group, groups.name_group
having count(distinct users.id_user) between 1 and 5
;
Ном = Справочники.Номенклатура.НайтиПоРеквизиту("Гарантия", ЗначениеРеквизита);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| НоменклатураДополнительныеРеквизиты.Ссылка КАК НоменклатураСсылка
|ИЗ
| Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
|ГДЕ
| НоменклатураДополнительныеРеквизиты.Свойство = &Свойство
| И НоменклатураДополнительныеРеквизиты.Значение = &Значение";
Запрос.УстановитьПараметр("Значение", ЗначениеГарантии);
Запрос.УстановитьПараметр("Свойство", СсылкаНаПВХ_Гарантия);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
КонецЦикла;
Почему не обнуляется регистр cx?
A1:
push ax
push cx
push dx
push di
xor cx, cx
mov di, 10
mov cx, [bx+2]
A1:
push ax
push cx
push dx
push di
xor cx, cx
mov di, 10
mov cl, [bx+1]
firstNum db 6,0,6 dup(?)
.A2:
xor dx, dx
mov dx, [bx+si]
sub dx, '0'
add ax, dx
.A2:
xor dx, dx
mov dl, [bx+si]
sub dl, '0'
add ax, dx
A1:
push ax
push cx
push dx
push di
...
pop si
pop di
console.log('Подключился к прослушиванию сообщений в user list с id: ', socket.id)
setUsrs(dataUsers)
Активация программной лицензии может выполняться с помощью двух инструментов:
1. Помощником активирования лицензии, который доступен в Конфигураторе с помощью команды Сервис ‑ Получение лицензии….
2. Утилитой ring. Описание утилиты см. здесь.
● Для ОС Linux: в процессе установки создается группа grp1cv8, в которую должны входить все учетные записи пользователей данного компьютера от имени которых:
● исполняются процессы кластеров серверов «1С:Предприятия» в режиме демона;
● выполняется запуск клиентских приложений на данном компьютере.
Следует убедиться, что у пользователей группы grp1cv8 есть доступ на запись для файлов программных лицензий. На каталог с программными лицензиями права назначаются следующим образом:
● Владелец каталога: root. Права: чтение и запись (rwx).
● Группа владельца: grp1cv8. Права: чтение и запись (rwx).
● Права для остальных пользователей: только чтение (r-x).
AL_to_HEX proc near
push ax
shr al,4
call @@outNibble
pop ax
@@outNubble:
and al,0fh
add al,90h
daa
adc al,40h
daa
mov ah,0eh
int 10h
ret
AL_TO_HEX endp