Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Dialkord228
5 / 5 / 4
Регистрация: 30.11.2015
Сообщений: 107
Завершенные тесты: 1
1

.exe в .com

15.01.2016, 18:09. Просмотров 814. Ответов 4
Метки нет (Все метки)

как переделать из .exe в .com подскажите пожалуйста.
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
.model small
.stack 100h
 
.data
rows        dw ?
cols        dw ?
array       db 10*10 dup (?)    ;массив
vector      db 10 dup (?) ; вектор для результата
 
crlf        db 13,10,'$'
buf     db 3,0,3 dup ('$'),'$'
 
msgPress    db 13,10,'press any key...$'
msgRows     db 'rows (mai mic ca 10): $'
msgCols     db 'columns (mai mic ca 10): $'
msgEl       db 13,10,'elements : ',13,10,'$'
msgPrep db 13,10, 'array: ',13,10,'$'
msgRes  db 13,10, 'result: ',10,13, '$'
 
.code
;макрос вывода на экран текстового сообщения
;str - стока для вывода
write macro  str
    push    ax
    push    dx
 
    lea     dx,str  ;адрес строки для вывода
    mov     ah,09h  ;09h функция
    int     21h
 
    pop     dx
    pop     ax
endm
 
;макрос вывода числа на экран
;вход: AX - число для вывода на экран
putdigit macro
    local lput1
    local lput2
    local exx
 
    push    ax
    push    cx
    push    -1  ;сохраним признак конца числа
    mov     cx,10   ;делить будем на 10
lput1:  xor     dx,dx   ;чистим регистр dx
    mov     ah,0                   
    div     cl  ;Делим 
    mov     dl,ah   
    push    dx  ;Сохраним цифру
    cmp al,0    ;Остался 0? 
    jne lput1   ;нет -> продолжим
    mov ah,2h
lput2:  pop dx  ;Восстановим цифру
    cmp dx,-1   ;Дошли до конца -> выход 
    je  exx
    add dl,'0'  ;Преобразуем число в цифру
    int 21h ;Выведем цифру на экран
    jmp lput2   ;И продолжим
exx:
    mov dl,' ' 
    int 21h
    pop cx
    pop     ax
endm
 
;макрос ввода числа с клавиатуры
;выход: AX - введенное число
indigit macro
    local   lin
    push    bx
    push    cx
    push    dx
 
    mov     ah,0Ah  ;буферизированный ввод
    lea     dx,buf
    int     21h
 
    xor     ax,ax
    xor     cx,cx
    ;разбор количества цифр введенного числа
    mov     cl,[buf+1]  ;количество реально введенных символов
    xor     di,di
lin:
    mov     dl,10
    mul     dl
    mov     bl,[buf+di+2]
    sub     bl,30h  ;ASCII -> число
    add     al,bl
    inc     di
    loop    lin
 
    pop dx  
    pop     cx
    pop     bx
endm
 
start:
    mov     ax,@data
    mov     ds,ax
 
    write msgRows
    indigit
    mov rows,ax
    write crlf  ;принудительно переводим курсор на след. строку
 
    write msgCols
    indigit
    mov cols,ax
    write crlf
 
    write msgEl
    
;ввод массива
    lea     bx,array
    mov     cx,rows
    
 
    
in1:    ;цикл по строкам
    push    cx
    mov     cx,cols
    mov     si,0
in2:    ;цикл по колонкам
    indigit ;макрос ввода числа
    mov     [bx][si],al
    inc     si
 
    write crlf  
    loop    in2
 
    add     bx,cols
    pop     cx
    loop    in1
 
write msgPrep   
    
;вывод массива на экран
    lea     bx,array
    mov     cx,rows
 
    
out1:   ;цикл по строкам
    push    cx
    mov     cx,cols
    mov     si,0
    write crlf  
out2:   ;цикл по колонкам
    xor     ax,ax
    mov al,[bx][si] ;Выводимое число в регисте AL
    putdigit    ;макрос вывода
    inc     si
    loop    out2
 
    add     bx,cols
    pop     cx
    loop    out1
 
 
 
;press any key
    write msgPress
    mov     ah,0
        int     16h
        
;exit
    mov     ax,4c00h
    int     21h
end start
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2016, 18:09
Ответы с готовыми решениями:

Не запускаются AVZ. exe, CCleaner. exe, AutoLogger. exe, regedit. exe. Словил вирус bizigames
Доброго времени суток. Захотел я почистить комп от мусора всякого при помощи CCleaner, как не...

Не запускаются AVZ. exe, CCleaner. exe, AutoLogger. exe, regedit. exe Дублируются процессы
Добрый день) не запускались экзешники перечисленные в топе, исправила кое как процессы...

Вирусы dwm.exe dllhost.exe ctfmon.exe svchost.exe
Проблема заключается в том что у меня на компьютере в диспетчере задач стоят задачи которые я не...

Не запускаются AVZ. exe, CCleaner. exe, AutoLogger. exe, regedit. exe
Доброе время суток. У меня такая проблема: Не запускаются AVZ. exe, CCleaner. exe, AutoLogger....

вирус calc.exe*32 notepad.exe*32 cmd.exe cannhost.exe
Здравствуйте. помогите решить проблему. При включении компьютера висят процессы calc.exe*32 ...

4
quwy
Native x86
3340 / 2186 / 649
Регистрация: 13.02.2013
Сообщений: 7,240
15.01.2016, 18:21 2
Assembler
1
.model tiny
0
Constantin Cat
2991 / 1125 / 376
Регистрация: 28.02.2015
Сообщений: 2,474
Завершенные тесты: 1
15.01.2016, 18:28 3
Ставите модель, убираете стек, а данные переносите в конц программы.
Ещё добавляете ORG 100h
0
Dialkord228
5 / 5 / 4
Регистрация: 30.11.2015
Сообщений: 107
Завершенные тесты: 1
15.01.2016, 18:54  [ТС] 4
Constantin Cat,
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
model tiny
ORG 100h
 .code
write macro  str
    push    ax
    push    dx
 
    lea     dx,str  ;адрес строки для вывода
    mov     ah,09h  ;09h функция
    int     21h
 
    pop     dx
    pop     ax
endm
 
;макрос вывода числа на экран
;вход: AX - число для вывода на экран
putdigit macro
    local lput1
    local lput2
    local exx
 
    push    ax
    push    cx
    push    -1  ;сохраним признак конца числа
    mov     cx,10   ;делить будем на 10
lput1:  xor     dx,dx   ;чистим регистр dx
    mov     ah,0                   
    div     cl  ;Делим 
    mov     dl,ah   
    push    dx  ;Сохраним цифру
    cmp al,0    ;Остался 0? 
    jne lput1   ;нет -> продолжим
    mov ah,2h
lput2:  pop dx  ;Восстановим цифру
    cmp dx,-1   ;Дошли до конца -> выход 
    je  exx
    add dl,'0'  ;Преобразуем число в цифру
    int 21h ;Выведем цифру на экран
    jmp lput2   ;И продолжим
exx:
    mov dl,' ' 
    int 21h
    pop cx
    pop     ax
endm
 
;макрос ввода числа с клавиатуры
;выход: AX - введенное число
indigit macro
    local   lin
    push    bx
    push    cx
    push    dx
 
    mov     ah,0Ah  ;буферизированный ввод
    lea     dx,buf
    int     21h
 
    xor     ax,ax
    xor     cx,cx
    ;разбор количества цифр введенного числа
    mov     cl,[buf+1]  ;количество реально введенных символов
    xor     di,di
lin:
    mov     dl,10
    mul     dl
    mov     bl,[buf+di+2]
    sub     bl,30h  ;ASCII -> число
    add     al,bl
    inc     di
    loop    lin
 
    pop dx  
    pop     cx
    pop     bx
endm
 
start:
    mov     ax,@data
    mov     ds,ax
 
    write msgRows
    indigit
    mov rows,ax
    write crlf  ;принудительно переводим курсор на след. строку
 
    write msgCols
    indigit
    mov cols,ax
    write crlf
 
    write msgEl
    
;ввод массива
    lea     bx,array
    mov     cx,rows
    
 
    
in1:    ;цикл по строкам
    push    cx
    mov     cx,cols
    mov     si,0
in2:    ;цикл по колонкам
    indigit ;макрос ввода числа
    mov     [bx][si],al
    inc     si
 
    write crlf  
    loop    in2
 
    add     bx,cols
    pop     cx
    loop    in1
 
write msgPrep   
    
;вывод массива на экран
    lea     bx,array
    mov     cx,rows
 
    
out1:   ;цикл по строкам
    push    cx
    mov     cx,cols
    mov     si,0
    write crlf  
out2:   ;цикл по колонкам
    xor     ax,ax
    mov al,[bx][si] ;Выводимое число в регисте AL
    putdigit    ;макрос вывода
    inc     si
    loop    out2
 
    add     bx,cols
    pop     cx
    loop    out1
 
 
 
;press any key
    write msgPress
    mov     ah,0
        int     16h
        
;exit
    mov     ax,4c00h
    int     21h
ret
rows        dw ?
cols        dw ?
array       db 10*10 dup (?)    ;массив
vector      db 10 dup (?) ; вектор для результата
 
crlf        db 13,10,'$'
buf     db 3,0,3 dup ('$'),'$'
 
msgPress    db 13,10,'press any key...$'
msgRows     db 'rows (mai mic ca 10): $'
msgCols     db 'columns (mai mic ca 10): $'
msgEl       db 13,10,'elements : ',13,10,'$'
msgPrep db 13,10, 'array: ',13,10,'$'
msgRes  db 13,10, 'result: ',10,13, '$'
end start
Ругается на создание .com файла. Ошибка:can not generate com file: segment-relocatable items present
0
Constantin Cat
2991 / 1125 / 376
Регистрация: 28.02.2015
Сообщений: 2,474
Завершенные тесты: 1
15.01.2016, 19:13 5
Лучший ответ Сообщение было отмечено Dialkord228 как решение

Решение

Dialkord228
Assembler
1
2
3
4
5
6
7
8
9
model tiny
 .code
ORG 100h - следующая ошибка
. . . 
start:
;    mov     ax,@data - первая ошибка
;    mov     ds,ax
. . . 
end start
1
15.01.2016, 19:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2016, 19:13

tyol.exe, zcfh.exe, gphboo.exe, djjqs.exe
Выкладываю логи. Все перечисленные в названии файлы обитают в Admin=>Application Data. Ясно, что...

Svchost.exe, onion.exe, openvg.exe torrc и куча dll и cl, а также папка tor в Roaming

Висят процессы mspaint.exe, notepad.exe, calc.exe
Добрый день! При включение компьютера сразу висят процессы mspaint.exe, notepad.exe, calc.exe. Так...


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

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

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