Форум программистов, компьютерный форум CyberForum.ru

Пожалуйста переделайте код с ассемблера на с++ - C++

Восстановить пароль Регистрация
 
AtrumNikita
0 / 0 / 0
Регистрация: 24.05.2013
Сообщений: 4
29.05.2013, 16:48     Пожалуйста переделайте код с ассемблера на с++ #1
Переделайте пожалуйста на с++.
Желательно на Visual studio c++.
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
.MODEL small   ;отводим под стек и под данные по 64Кб
 .STACK 100h    ;отмечаем начало сегмента стека
 
 .DATA     ;отмечаем начало сегмента данных
 NL  db  0Ah, 0Dh, '$'
        Buf  DB  255, 0, 256 DUP (0)  ;
 hFile db 300         dup(?)
 Filename db  'file.txt',0
 .CODE    ;отмечаем начало сегмента кодов
 main PROC
  mov  ax,@data  ;копируем адрес
  mov  ds,ax  ;сегмента данных  
    
    MOV AH, 02h
    mov dl, 76h
    INT 21h
    mov dl, 76h
    INT 21h
    mov dl, 65h
    INT 21h
    mov dl, 64h
    INT 21h 
    mov dl, 69h
    INT 21h
    mov dl, 74h
    INT 21h
    mov dl, 65h
    INT 21h
    mov dl, 20h
    INT 21h
    mov dl, 73h
    INT 21h
    mov dl, 74h
    INT 21h
    mov dl, 72h
    INT 21h
    mov dl, 6Fh
    INT 21h
    mov dl, 6Bh
    INT 21h
    mov dl, 79h
    INT 21h
    mov dl, 3Ah
    INT 21h
 
 
  mov dx, offset Buf
  mov ah, 0Ah
  int 21h   ;запрашиваем строку     
  
 
  mov dx, offset NL
  mov ah, 9h
  int 21h   ;переводим строку на экране, выводя CRLF
 
  xor cx, cx 
  mov cl, [Buf+1]
  test cl, cl
  jz Exit   ;проверяем длину строки - если пустая, то выходим
 
  add bx, offset Buf+1
  add bl, cl
  mov si, bx
last:
  mov  dl,[si]
  cmp  dl,' '
  jne  tmp
  dec  si
  dec  cx
  jmp  last
  
  
tmp: mov si, offset Buf+2
 
first: mov  dl,[si]
  cmp  dl,' '
  jne  Cycle
  inc  si
  dec  cx
  jmp  first
 
  
Cycle:  lea di, hFile
  mov bx,0
 
Cycle1:  mov dl, [si]  ;берём очередной байт
 
  
Print:
  mov [di], dl
  inc di
  mov     ah,02h  ;выбор функции 2
  int     21h   ;вызов DOS
  inc  bx
    
NextChar:
  mov  dh,dl  ;сохранить текущий символ для теста на следующем витке
         inc  si   ;перейти к следующему символу
  
  loop Cycle1 
   
  push  bx
 
  mov ah, 3Ch  ;если же добрались до конца - будем сохранять.
  mov dx, offset Filename
  xor cx, cx
  int 21h    ;создаём файл
 
  pop si  
 
  push offset hFile
  call vivod
 
  mov ah, 3eh
  int 21h    ;закрываем файл
 
Exit:
  mov ax, 4c00h
  int 21h    ;выходим из программы
 
    main    ENDP
 
    vivod proc
    mov bx, ax
    mov ah, 40h
    mov cx, si
    mov bp, sp
    add bp, 2
    mov dx, [bp]
    int 21h
    ret
    vivod endp
    END main
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2013, 16:48     Пожалуйста переделайте код с ассемблера на с++
Посмотрите здесь:

Поправьте пожалуйста код. C++
C++ Переделайте код под Visual
Написать код для игры НИМ. проверьте пожалуйста тот ли это код C++
Двумерный массив (Вычислить вектор D, компоненты которого равны сумме элементов строк матрицы). Пожалуйста переделайте готовую программу C++
объясните пожалуйста код C++
C++ Проверьте код пожалуйста
C++ Переделайте, пожалуйста, с использованием процедур. Код С++
C++ Прокоментируйте код, пожалуйста

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 23:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru