Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/47: Рейтинг темы: голосов - 47, средняя оценка - 4.57
Кирюха
32 / 30 / 6
Регистрация: 10.11.2009
Сообщений: 123
1

Перевод в двоичный код

24.11.2009, 20:02. Просмотров 9252. Ответов 8
Метки нет (Все метки)

Всем привет!
Мне необходимо научиться переводить команды ассемблера в двоичный код. Где можно это почитать? или вы можете тут на пальцах объяснить?

p.s например mov ah,9 что-нибудь типа того
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2009, 20:02
Ответы с готовыми решениями:

Преобразовать 16-ти разрядный двоичный код в код 8-4-2-1
Помогите пожалуйста составить программу для Intel 8051, которая преобразует 16-ти разрядный...

Преобразовать двоичный код в десятичный
Ребят, нужно дополнить код, нужно, чтобы результат выполнения программы , то есть двоичный код...

Программа перевода символов в двоичный код
Нужно написать программу на assembler. С клавиатуры вводятся 5 символов,программа должна вывести...

Базовые понятия: как перевести в асме слово в двоичный код?
Как перевести в асме слово в двоичный код? По определению слово занимает 2 байта или 65536. Когда...

Перевести команду ассемблера в двоичный код (остался только REX)
Дана команда: and ,dl После просмотра большого кол-ва литературы по ассемблеру было получено...

8
Orwomoi
64 / 63 / 3
Регистрация: 16.11.2009
Сообщений: 156
25.11.2009, 03:07 2
Это чтобы написать свой ассемблер? Тогда читай мануалы интела.
Если отдельные команды из памяти надо показать в виде ASCII цифр двоичного формата.... Можно попробовать так в фасме:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
format  PE GUI 4.0
entry start
 
include 'win32a.inc'
 
section '.text' code readable executable
 
start:
com:            mov     ah,9             ;здесь, что выводим
endcom:
                mov     ecx,endcom
                sub     ecx,com          ;в ecx длина команды в байтах
                neg     ecx              ;это для удобства
                mov     ebx,result       ;в result будет строка цифр
l1:             mov     al,[endcom+ecx]  ;в al байт который надо превести в строку двоичных ASCII цифр
                push    ecx
                mov     ecx,8            
l2:             shl     al,1             ;в CF старший бит байта AL
                rcl     byte [ebx],1     ;отправляем в младший бит byte [ebx], CF
                or      byte [ebx],30h   ;превращаем в ASCII символ
                inc     ebx
                dec     ecx
                jnz     l2               ;повторяем для 8 битов байта
                pop     ecx
                inc     ecx              ;повторяем для всех байтов
                jge     exit
                mov     byte [ebx],20h
                inc     ebx              ;пробелы между байтами
                jmp     l1
 
exit:
                invoke  ExitProcess,0
 
                
 
section '.data' data readable writeable
 
result  db 128 dup (?)
 
 
section '.idata' import data readable writeable
library kernel,'KERNEL32.DLL'
import kernel,\
       ExitProcess,'ExitProcess
Можно задать любое кол-во байт между com и endcom
1
Кирюха
32 / 30 / 6
Регистрация: 10.11.2009
Сообщений: 123
25.11.2009, 16:08  [ТС] 3
не не не, все гораздо проще. просто препод требует уметь переводить в двоичный код. интеловские и Дао мне не помогли.. не понял ничего
0
Goodwin98
2524 / 820 / 10
Регистрация: 31.05.2009
Сообщений: 1,672
25.11.2009, 17:03 4
Код
 номера регистров: 
  dec|bin|W=0|W=1 
          rb|rw |rd  

    0|000|AL|AX |EAX| 
    1|001|CL|CX |ECX|
    2|010|DL|DX |EDX| 
    3|011|BL|BX |EBX|
    4|100|[B][U]AH[/U][/B]|SP |ESP|  
    5|101|CH|BP |EBP|
    6|110|DH|SI |ESI| 
    7|111|BH|DI |EDI|
Поместить число imm в регистр
|1100 011w:11 000 reg: imm

mov ah,imm
1100 0110:1100 0100 : imm
т.е. mov ah,09 - C6C409
1
bezmozga
6 / 6 / 0
Регистрация: 29.10.2009
Сообщений: 26
26.11.2009, 20:45 5
Можеш также всопользоваться отладчиком debug, чтоб проверить к примеру правильность перевода команды. Можеш прочитать в Абеле.
1
newsuperprogram
0 / 0 / 1
Регистрация: 21.10.2012
Сообщений: 23
10.01.2013, 00:02 6
Можете подробнее описать, пошагово, как делается ручной перевод программы ассемблера в двоичный код? Помогите, пожалуйста, нигде не могу найти справку в этой области.
0
sh2ezo
1126 / 260 / 9
Регистрация: 11.06.2010
Сообщений: 1,050
10.01.2013, 01:04 7
Ответ обоим:
1. Идем сюда
2. Читаем таблицу опкодов и переводим по ней
1
Charles Kludge
Клюг
7647 / 3162 / 383
Регистрация: 03.05.2011
Сообщений: 8,382
10.01.2013, 01:05 8
Кхе... Возьмите исходники fasm'a да посмотрите... Судя по нику, вы легко справитесь.
0
newsuperprogram
0 / 0 / 1
Регистрация: 21.10.2012
Сообщений: 23
10.01.2013, 01:10 9
Цитата Сообщение от Charles Kludge Посмотреть сообщение
Кхе... Возьмите исходники fasm'a да посмотрите... Судя по нику, вы легко справитесь.
Это без сомнений
0
10.01.2013, 01:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2013, 01:10

Перевод двоичной тетрады в 16-ричный код. Прокомментировать код
Помогите пожалуйста прокомментировать код программы перевода двоичной тетрады в 16-ричный код:...

Перевод db в ascii код
Вычисляю разность упакованных чисел, не пойму как работает код с 20 по 27 строчки (перевод в...

Перевод в машинный код
Есть команда: jmp 00404339 , которая соответствует машинному коду: E9 D3 30 00 00 E9 - опкод...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru