Дмитрий
а реально в сях не получается достать из этого адреса калибровочный байт
Дмитрий
Дмитрий
скажите пожалуйста
Дмитрий
можно как то расширить предел измерения таймера
Дмитрий
если мне нужно записать в него больше времени
Дмитрий
сейчас у меня на максимальном предделителе вмещается только 65 миллисекунд
Дмитрий
таймер 8битный
notme
можно как то расширить предел измерения таймера
Можно - счёт в отдельной переменной по прерыванию переполнения (в АВР так, в ПИКе наверное также)
notme
и так до 17 секунд довести
👍Ага, 16 бит хватит
Дмитрий
можно и без прерывания
­
­
Здрасьте, Вероника
Гордей
Здравствуйте!
Alexey
Здравствуйте!
Здравствуйте
Андрей
Ребят подскажите пожалуйста как это исправить. Я не разбираюсь но нужно писать курсач. А у меня вылетает ошибка вроде как с сегментацией.
Андрей
.386 .model small .stack 100h .data x dd 10 dup(0) y dd 10 dup(0) x1 dd 0 y1 dd 0 flag db 0 flag1 db 0 .code _@main: mov ax, DGROUP mov ds, ax xor bx, bx push 0 push 5 pop ax pop dx pop bx mov word ptr x1[bx], ax mov word ptr x1[bx+2], dx mov ax, 4C00h int 21h end _@main вот мой код который не запускается использую компилятор masm. В среде Visual Studio
Андрей
ну прога не рабочая да и дело не в этом
Андрей
мне нужна среда, которая позволяет такое запускать
Sergey
мне нужна среда, которая позволяет такое запускать
https://www.jdoodle.com/compile-assembler-nasm-online/ не подойдёт?
Андрей
а мне нужен masm или это не очень важно?
Sergey
а мне нужен masm или это не очень важно?
Капризный какой, ни кто же не знает какие требования к курсовика, если требования для использования исключительно masm то может и не пойти
Андрей
только masm
Sergey
https://habr.com/ru/articles/326078/ это пробовал читать?
Maxim
только masm
Скинь само задание
The Bird of Hermes
Лучше ставить версию 0.9.0
вася
Пишу программу для dos. Она должна завершиться системным вызовом для возврата в консоль. Но, если я использую команду idiv, программа не завершается корректно. sseg segment para stack 'stack' db 256 dup(?) sseg ends code segment para public 'code' assume cs:code, ds:data, ss:sseg, es:data main proc mov ax, data mov ds, ax mov es, ax mov ax, 15 mov bx, 2 idiv bx mov ax, 4c00h int 21h main endp code ends data segment para public 'data' data ends end main Без команды idiv bx все работает прекрасно.
вася
да
вася
делит ax на указанный в команде операнд
вася
раньше использовал, все было нормлально
КТ315
делит ax на указанный в команде операнд
Это неправильный ответ. Читай, как работает команда idiv.
вася
в dx остаток
КТ315
в dx остаток
dx не только как остаток использоваться может.
вася
Не ax, а dx:ax
а как исправить то?
The Bird of Hermes
а как исправить то?
Лучше обнули dx перед делением
КТ315
а как исправить то?
Во-первых, отладчик ты используешь вообще? Ты должен был видеть причину исключения - это INT_OVERFLOW. В EDX изначально при запуске лежит какой-то мусор, и ты делишь не AX=2, BX=2 (2/2), а какой-то DX:AX=1831283812... на 2.
The Bird of Hermes
По-моему он там отдельное прерывание вызывает при переполнении деления. Или зацикливается
The Bird of Hermes
Не помню уже
вася
Хочу написать программу, которая реагирует на мышь. Все получается, кроме обработчика событий. Он просто не срабатывает. Данная программа должна считывать нажатие левой кнопкой и устанавливать мышь в заданные координаты. sseg segment para stack 'stack' db 256 dup(?) sseg ends code segment para public 'code' assume cs:code, ds:data, ss:sseg, es:code handler proc mov ax, 4 mov dx, 50 mov cx, 50 int 33h retf handler endp main proc mov ax, 12h int 10h mov ax, 0 int 33h mov ax, 1 int 33h mov ax, 0ch mov cx, 00000010b mov dx, offset handler int 33h mov cx, 0 int 33h mov ah, 4ch int 21h main endp code ends data segment para public 'data' data ends end main
Андрей
мужики подскажите пожалуйста. У меня есть вот такие функции, но я в них ничего не понимаю. Можно какую-нибудь статью что-то типа ассемблер для чайников. Спасибо. Ну или книгу ничего не могу найти похожего по строкам. @Vyvod_literala proc xor si,si @M16: mov di,bx[si] cmp di,'$' jz @M15 mov buffer[di],dl inc di inc si jmp @M16 @M15: mov mov buffer[di],20h inc di ret @Vyvod_literala endp
Дмитрий
Дмитрий, [29.04.2024 15:33] у меня странная проблемма Дмитрий, [29.04.2024 15:33] компилирую проект в мплаб под 683 пик Дмитрий, [29.04.2024 15:33] получаю на выходе хекс Дмитрий, [29.04.2024 15:34] но в этом хексе кривое слово конфигурации Дмитрий, [29.04.2024 15:34] __CONFIG (CP_OFF & CPD_OFF & BOREN_OFF & MCLRE_OFF & PWRTE_ON & WDTE_OFF & FOSC_INTOSCIO & FCMEN_OFF & IESO_OFF); Дмитрий, [29.04.2024 15:35] должно быть: 30С4 а получаю в хексе: F0C4
Shieldy
(1 + 2) @Ageter, пожалуйста, отправьте решение указанной арифметической задачи в этот чат в течение указанного времени, иначе вы будете кикнуты. Спасибо! (30 сек) При поддержке 1inch Network
­
Брысь
Semyon
Блэт... че проституткам делать в чате асма...
$continue$
Блэт... че проституткам делать в чате асма...
Ну есть же типа мем. Из строителя в айти. А тут...
Sergey
Блэт... че проституткам делать в чате асма...
Почему проститутка не может писать на асме? Что за стереотипы?
Aiwan \ (•◡•) / _bot
Почему проститутка не может писать на асме? Что за стереотипы?
потому что мозг это не основной ее рабочий орган
Illusion
посоветуйте ресурс для изучения masm ассемблера
Aiwan \ (•◡•) / _bot
Illusion
invoke MessageBox, NULL, addr MsgBoxText, addr MsgBoxCaption, MB_OK Обьясните пожалуйста, для чего тут директива addr ?
The Bird of Hermes
Оно не является обязательным в данном случае
The Bird of Hermes
invoke MessageBox, NULL, addr MsgBoxText, addr MsgBoxCaption, MB_OK Обьясните пожалуйста, для чего тут директива addr ?
Если передавать макросам вызова функций аргумент с addr, то вместо mov будет использоваться lea
Illusion
понял, спасибо
Illusion
Хочу скомпилировать ресурс файл(с помощью masm editor) но получаю следующую ошибку, что я делаю не так?
Дмитрий
Дмитрий, [23.05.2024 18:20] скажите если я закомментирую if //if(......) { ....... } выражение в скобках будет выполняться - не вызовет это ошибку?
notme
Дмитрий, [23.05.2024 18:20] скажите если я закомментирую if //if(......) { ....... } выражение в скобках будет выполняться - не вызовет это ошибку?
В фигурных - буит Ошибку может вызвать, если в условии выполнялся код, который мог влиять на другие части программы, к примеру вызов ф-ии
Дмитрий
я фи я вообще не работал
Дмитрий
даже не знаю что это
Дмитрий
да и сама прога у меня сложная
Дмитрий
там всякие структы и юнионы ->
Дмитрий
+ там параллельные потоки
notme
Ну закомменть, скампиль, да проверь?
Дмитрий
else { //if(!memcmp(&ep->emm[6], rdr->hexserial + 2, 4)) { ep->type = UNIQUE; memset(ep->hexserial, 0, 8); memcpy(ep->hexserial + 2, &ep->emm[6], 4); //memcpy(ep->hexserial + 2, rdr->hexserial + 2, 4); //!!! rdr_log_dbg_sensitive(rdr, D_EMM, "UNIQUE, ep->hexserial = %s", cs_hexdump(1, ep->hexserial, 8, tmp_dbg, sizeof(tmp_dbg))); memcpy(ep->hexserial + 2, rdr->hexserial + 2, 4); //!!! return 1; } //else { ep->type = GLOBAL; rdr_log_dbg(rdr, D_EMM, "GLOBAL"); memset(ep->hexserial, 0, 8); return 1; } }
Дмитрий
ты такого на асме не напишешь
Дмитрий
а если и напишешь - то не отладишь
Дмитрий
КТ361 зато есть
The Bird of Hermes