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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2016, 18:45   #1
timcryt
Форумчанин
 
Регистрация: 25.01.2016
Сообщений: 105
По умолчанию Машинный код команды jnz

Недавно столкнулся с трудной проблемой. Мне потребовалось перевести в машинный код команды jnz процессора 8086. Имеется переменная k которая равна регистру IP и переменная m, в которой хранится адрес перехода (переход короткий), требуется вывести машинную команду аналогичную 'jnz m' к меня получился такой код
Код:
#include <iostream>

int main ()
{
    unsigned short k,m;
    cin >> k >> m;
    cout.setf(cout.hex);
    cout.unsetf(cout.dec);
    cout << 0x75 << (m-k-2)/256 << (m-k-2)%256;
    return 0;
}
Программа работает неправильно. Я искал описание машинного кода jnz но толкового описания не нашёл. Как сделать так чтобы программа работала правильно
timcryt вне форума Ответить с цитированием
Старый 13.03.2016, 19:33   #2
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,774
По умолчанию

Когда передо мной стоит такая задача, я беру FASM, пишу нужные команды, компилю в чистый бинарник и смотрю hex-просмотром в FAR. Идея понятна?
Vapaamies вне форума Ответить с цитированием
Старый 13.03.2016, 19:47   #3
timcryt
Форумчанин
 
Регистрация: 25.01.2016
Сообщений: 105
По умолчанию

Я делал это: писал такой код
Код:
org 600h
jne 700h
org 700h
jne 600h
И смотрел в wxHexEditor, всё что я понял из этого и отображено в той программе
timcryt вне форума Ответить с цитированием
Старый 13.03.2016, 22:24   #4
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,774
По умолчанию

Цитата:
Сообщение от timcryt Посмотреть сообщение
Я делал это: писал такой код
Код:
org 600h
jne 700h
org 700h
jne 600h
В бинарнике:
Код:
0000000000: 0F 85 FC 00 0F 85 FC FE
Смотрим сюда:
Код:
0F 85 cw/cd	JNZ rel16/32	Jump near if not zero (ZF=0)
Это ближний переход. Короткий переход -- с другим кодом и байтовым смещением:
Код:
75 cb	JNZ rel8	Jump short if not zero (ZF=0)
Vapaamies вне форума Ответить с цитированием
Старый 14.03.2016, 15:24   #5
timcryt
Форумчанин
 
Регистрация: 25.01.2016
Сообщений: 105
По умолчанию

Спасибо
timcryt вне форума Ответить с цитированием
Старый 20.03.2016, 18:44   #6
ВТА
Новичок
Джуниор
 
Регистрация: 20.03.2016
Сообщений: 5
По умолчанию Нужна помощь специалиста.

Добрый вечер.
Нужна помощь специалиста.
Есть 2 программы с расширением .s19
Нужно немного изменить.
За деньги.
ВТА вне форума Ответить с цитированием
Старый 20.03.2016, 18:58   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Устройство известно? Какие изменения неообходимы?
p51x вне форума Ответить с цитированием
Старый 20.03.2016, 19:01   #8
ВТА
Новичок
Джуниор
 
Регистрация: 20.03.2016
Сообщений: 5
По умолчанию

хорошо.
Одна программа может соединяться с компьютером с помощью USB - СAN а другая нет
ВТА вне форума Ответить с цитированием
Старый 20.03.2016, 19:04   #9
ВТА
Новичок
Джуниор
 
Регистрация: 20.03.2016
Сообщений: 5
По умолчанию

Блок управления микроклиматом.
ВТА вне форума Ответить с цитированием
Старый 21.03.2016, 07:06   #10
ВТА
Новичок
Джуниор
 
Регистрация: 20.03.2016
Сообщений: 5
По умолчанию

p51x вы мне поможете решить проблему?
ВТА вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Машинный код CALL Bezurog Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 08.05.2013 03:37
Машинный код и архитектура ЭВМ koljsch Компьютерное железо 5 05.03.2013 13:35
Как превратить amx файл (то есть машинный код) в исходный в pwn. DenisReaver Помощь студентам 4 19.08.2011 15:40
Машинный код pascal Nicko_mt Паскаль, Turbo Pascal, PascalABC.NET 3 22.05.2011 23:20