gametechmods

Robot Arena => General Support => Topic started by: Daemon on December 07, 2010, 03:23:20 PM

Title: Disassembler
Post by: Daemon on December 07, 2010, 03:23:20 PM
Anyone knows how to write programs on assembler?
Title: Re: Disassembler
Post by: Clickbeetle on December 11, 2010, 09:21:29 PM
Please elaborate.  Are you talking about Python?  What exactly do you want it to do?
Title: Re: Disassembler
Post by: Daemon on December 13, 2010, 10:52:00 AM
Please elaborate.  Are you talking about Python?  What exactly do you want it to do?
No, its smt like his:
Code: [Select]
.model tiny
.286
.code
org 100h
start:  mov ax,3
        int 10h; чищу экран
        mov ah,9
        mov dx,offset string1; выводим приглашение на ввод
        int 21h
        mov ah,0Ah
        mov dx,offset string2; получаем число
        int 21h
        mov ah,9
        mov dx,offset string14; выводим результат на экран
        int 21h
        mov bh,0
        mov bl,string2[2]
        sub bl,'0'; из ASCII-кода символа получаю число
        shl bx,1; умножаю полученное число на 2
        mov dx,string13[bx]; нахожу адрес ответа
        mov ah,9
        int 21h ; вывожу результат на экран
        mov ah,0; ждем пока не нажмут любую клавишу
        int 16h
        retn; выходим из программы
string1 db 'Введите число от 0 до 9 и нажмите Enter',0Dh,0Ah,"$"
string14 db 0Dh,0Ah,'результат равен $'
string2 db 2,0,?,?,?; буфер для ввода числа
string3 db '0$';0
string4 db '1$';0+1=1
string5 db '3$';0+1+2=3
string6 db '6$';0+1+2+3=6
string7 db '10$';0+1+2+3+4=10
string8 db '15$';0+1+2+3+4+5=15
string9 db '21$';0+1+2+3+4+5+6=21
string10 db '28$';0+1+2+3+4+5+6+7=28
string11 db '36$';0+1+2+3+4+5+6+7+8=36
string12 db '45$';0+1+2+3+4+5+6+7+8+9=45
string13 dw string3,string4,string5,string6,string7; адреса ответов
              dw string8,string9,string10,string11,string12
end start
Title: Re: Disassembler
Post by: Clickbeetle on December 13, 2010, 11:25:43 PM
Eh... the only people who might have any experience are Serge or apanx, but really I have no idea.
Title: Re: Disassembler
Post by: Serge on December 15, 2010, 03:30:08 PM
Please elaborate.  Are you talking about Python?  What exactly do you want it to do?
No, its smt like his:
Code: [Select]
.model tiny
.286
.code
org 100h
start:  mov ax,3
        int 10h; чищу экран
        mov ah,9
        mov dx,offset string1; выводим приглашение на ввод
        int 21h
        mov ah,0Ah
        mov dx,offset string2; получаем число
        int 21h
        mov ah,9
        mov dx,offset string14; выводим результат на экран
        int 21h
        mov bh,0
        mov bl,string2[2]
        sub bl,'0'; из ASCII-кода символа получаю число
        shl bx,1; умножаю полученное число на 2
        mov dx,string13[bx]; нахожу адрес ответа
        mov ah,9
        int 21h ; вывожу результат на экран
        mov ah,0; ждем пока не нажмут любую клавишу
        int 16h
        retn; выходим из программы
string1 db 'Введите число от 0 до 9 и нажмите Enter',0Dh,0Ah,"$"
string14 db 0Dh,0Ah,'результат равен $'
string2 db 2,0,?,?,?; буфер для ввода числа
string3 db '0$';0
string4 db '1$';0+1=1
string5 db '3$';0+1+2=3
string6 db '6$';0+1+2+3=6
string7 db '10$';0+1+2+3+4=10
string8 db '15$';0+1+2+3+4+5=15
string9 db '21$';0+1+2+3+4+5+6=21
string10 db '28$';0+1+2+3+4+5+6+7=28
string11 db '36$';0+1+2+3+4+5+6+7+8=36
string12 db '45$';0+1+2+3+4+5+6+7+8+9=45
string13 dw string3,string4,string5,string6,string7; адреса ответов
              dw string8,string9,string10,string11,string12
end start

Holy shit comments in Russian. I do some ASM programming (x86 [Bare Metal, Windows and some Linux] and a little bit of ARM). Why are you writing 16-bit code?
Title: Re: Disassembler
Post by: Daemon on December 15, 2010, 05:42:00 PM
Please elaborate.  Are you talking about Python?  What exactly do you want it to do?
No, its smt like his:
Code: [Select]
.model tiny
.286
.code
org 100h
start:  mov ax,3
        int 10h; чищу экран
        mov ah,9
        mov dx,offset string1; выводим приглашение на ввод
        int 21h
        mov ah,0Ah
        mov dx,offset string2; получаем число
        int 21h
        mov ah,9
        mov dx,offset string14; выводим результат на экран
        int 21h
        mov bh,0
        mov bl,string2[2]
        sub bl,'0'; из ASCII-кода символа получаю число
        shl bx,1; умножаю полученное число на 2
        mov dx,string13[bx]; нахожу адрес ответа
        mov ah,9
        int 21h ; вывожу результат на экран
        mov ah,0; ждем пока не нажмут любую клавишу
        int 16h
        retn; выходим из программы
string1 db 'Введите число от 0 до 9 и нажмите Enter',0Dh,0Ah,"$"
string14 db 0Dh,0Ah,'результат равен $'
string2 db 2,0,?,?,?; буфер для ввода числа
string3 db '0$';0
string4 db '1$';0+1=1
string5 db '3$';0+1+2=3
string6 db '6$';0+1+2+3=6
string7 db '10$';0+1+2+3+4=10
string8 db '15$';0+1+2+3+4+5=15
string9 db '21$';0+1+2+3+4+5+6=21
string10 db '28$';0+1+2+3+4+5+6+7=28
string11 db '36$';0+1+2+3+4+5+6+7+8=36
string12 db '45$';0+1+2+3+4+5+6+7+8+9=45
string13 dw string3,string4,string5,string6,string7; адреса ответов
              dw string8,string9,string10,string11,string12
end start

Holy shit comments in Russian. I do some ASM programming (x86 [Bare Metal, Windows and some Linux] and a little bit of ARM). Why are you writing 16-bit code?

У тебя нету образцов ассемблера?
Просто мне нужно до этого понедельника написать прогу на асме, которая считывает из .com файла машинный код и записывает его в .txt.
напр.:
Code: [Select]
0100: B409 mov ah, 09
0102: BADE01 mov dx, 01DE
0105: CD21 int 21
0107: B40A mov ah, 0A
0109: BA6301 mov dx, 0163
010C: CD21 int 21
010E: B409 mov ah, 09
0110: BA1102 mov dx, 0211
0113: CD21 int 21
0115: 32ED xor ch, ch
0117: 2BC0 sub ax, ax
0119: 8A0E6401 mov cl, [0164]
011D: BB6501 mov bx, 0165
0120: B241 mov dl, 41
0122: B65A mov dh, 5A
0124: 3A17 cmp dl, [bx]
0126: 7F05 jg 012D
0128: 3A37 cmp dh, [bx]
012A: 7C01 jl 012D
012C: 40 inc ax
012D: 43 inc bx
012E: 49 dec cx
012F: 83F900 cmp cx, 00
0132: 7FF0 jg 0124
0134: B20A mov dl, 0A
0136: F6F2 div dl
0138: 88261002 mov [0210], ah
013C: 8006100230 add byte ptr [0210], 30
Проблема в том, что я просто не успеваю, так как разные контр. каждый день.

P.S.  в каком универе учат прорамировать под линукс на асме?)
Title: Re: Disassembler
Post by: Serge on December 16, 2010, 08:17:00 AM
Wow, this doesn't mean I understand Russian very well (I do some, though). I'll take a look at the program later, though - have other stuff to do right now. I have some sample Win32 assembly code on my netbook, will upload them later.