Как запустить данный код ассемблера - Assembler

Узнай цену своей работы

Формулировка задачи:

Как или при помощи чего запустить данный код? пробовал с помощью TASM.EXE и TLINK.EXE пришет почти в каждой строке ошибка
Листинг программы
  1. ; multi-segment executable file template.
  2. data segment
  3. s1 db 'vvedite chislo v vosmerichnoii sisteme schislenia:$'
  4. s2 db 'chislo v dvoichnoi sisteme schislenia:$'
  5. s3 db 'chislo v vosmerichnoi sisteme schislenia:$'
  6. s4 db 'chislo v desiatichnoi sisteme schislenia:$'
  7. s5 db 'invertirovat nechetnie bity:$'
  8. s6 db 'rezmer chisla bolhe 2 bait:$'
  9. s7 db 'vmesto cifru vveden drugoi simvol:$'
  10. buf db 8,0
  11. bufs db 8 dup(0)
  12. chislo dw 0
  13. ends
  14. stack segment
  15. dw 128 dup(0)
  16. ends
  17. code segment
  18. start:
  19. ; set segment registers:
  20. mov ax, data
  21. mov ds, ax
  22. mov es, ax
  23. ;ustanovka kursora
  24. xor ax,ax
  25. mov ah,02h
  26. mov dh,0
  27. mov dl,0
  28. int 10h
  29. ;vivod s1
  30. lea dx,s1
  31. mov ah,9
  32. int 21h
  33. call perenos
  34. ;sbros bufera
  35. v2:mov cx,7
  36. lea di,bufs
  37. mov al,13
  38. rep stosb
  39. v3:mov ah,0Ah
  40. lea dx,buf
  41. int 21h
  42. ;proverka vvedeni li simvoli
  43. lea si,bufs
  44. lodsb
  45. cmp al,'-'
  46. jne v4
  47. lodsb
  48. v4:cmp al,13
  49. je v3
  50. mov cx,6
  51. dec si
  52. v5:lodsb
  53. cmp al,13
  54. je v6
  55. cmp al,48
  56. jl v7
  57. cmp al,55
  58. jg v7
  59. v6:dec cx
  60. cmp cx,0
  61. jne v5
  62. jmp v8
  63. ;vivod s2
  64. v7:call perenos
  65. lea dx,s7
  66. mov ah, 9
  67. int 21h
  68. call perenos
  69. jmp v2
  70. ;proverka znaka
  71. v8:lea si,bufs
  72. lodsb
  73. cmp al,'-'
  74. je v13
  75. ;proverka vvedeno pol chislo razmerom 2 baita
  76. lea si,buf[1]
  77. lodsb
  78. cmp al,5
  79. jle v10
  80. cmp al,7
  81. jl v9
  82. lodsb
  83. cmp al,'0'
  84. jg v12
  85. v9:lodsb
  86. cmp al,'0'
  87. jg v12
  88.  
  89. ;dekodirovanie pol chisla
  90. v10:lea si,buf[1]
  91. lodsb
  92. xor cx,cx
  93. mov cl,al
  94. xor bx,bx
  95. v11:lodsb
  96. and ax,7
  97. sal bx,3
  98. or bx,ax
  99. loop v11
  100. mov chislo,bx
  101. jmp v16
  102. ;vivod s3
  103. v12:call perenos
  104. lea dx,s6
  105. mov ah, 9
  106. int 21h
  107. call perenos
  108. jmp v2
  109. ;proverka vvedeno otr chislo razmerom 2 baita
  110. v13:lea si,buf[1]
  111. lodsb
  112. cmp al,7
  113. jl v14
  114. inc si
  115. mov cl,al
  116. dec cl
  117. lodsb
  118. cmp al,'1'
  119. jl v14
  120. jg v12
  121. mov di,si
  122. repne scasb
  123. cmp cx,0
  124. jne v12
  125. ;dekodirovanie otr chisla
  126. v14:lea si,buf[1]
  127. lodsb
  128. xor cx,cx
  129. mov cl,al
  130. dec cx
  131. inc si
  132. v15:lodsb
  133. and ax,7
  134. sal bx,3
  135. or bx,ax
  136. loop v11
  137. neg bx
  138. mov chislo,bx
  139.  
  140. ;vivod s2
  141. v16:call perenos
  142. lea dx, s2
  143. mov ah, 9
  144. int 21h
  145. call perenos
  146. ;vivod v dvoichnoi sisteme schislenia
  147. mov bx,chislo
  148. mov cx,16
  149. o1:mov dx,bx
  150. rol dx,1
  151. mov bx,dx
  152. and dx,1
  153. add dl,030h
  154. mov ah,2
  155. int 21h
  156. loop o1
  157. ;vivod s3
  158. call perenos
  159. lea dx, s3
  160. mov ah, 9
  161. int 21h
  162. call perenos
  163. ;vivod v shesnadcaterichnoi sisteme schislenia
  164. mov bx,chislo
  165. mov dx,bx
  166. rol dx,1
  167. mov bx,dx
  168. and dx,1
  169. add dl,030h
  170. mov ah,2
  171. mov al,dl
  172. int 21h
  173. mov cx,5
  174. o2:mov dx,bx
  175. rol dx,3
  176. mov bx,dx
  177. and dx,7
  178. add dl,030h
  179. mov ah,2
  180. int 21h
  181. loop o2
  182. ;vivod s4
  183. call perenos
  184. lea dx, s4
  185. mov ah, 9
  186. int 21h
  187. call perenos
  188. ;vivod v desiatichnoi sisteme schislenia
  189. mov cx,5
  190. mov bx,10
  191. cmp chislo,0
  192. jge o3
  193. mov ah,2
  194. mov dl,'-'
  195. int 21h
  196. o3:mov ax,chislo
  197. cwd
  198. idiv bx
  199. mov chislo,ax
  200. cmp dx,0
  201. jge o7
  202. neg dx
  203. o7:push dx
  204. loop o3
  205. mov cx,5
  206. o6:pop dx
  207. add dl,030h
  208. mov ah,2
  209. int 21h
  210. loop o6
  211.  
  212. ;vivod s5
  213. call perenos
  214. lea dx, s5
  215. mov ah, 9
  216. int 21h
  217. call perenos
  218. ;invertiruem
  219. mov cl,buf[1]
  220. lea si,bufs
  221. o8:lodsb
  222. mov ah,al
  223. not al
  224. and al,010101010b
  225. and ah,001010101b
  226. or al,ah
  227. mov ch,8
  228. mov bl,al
  229. z1:mov dl,bl
  230. rol dl,1
  231. mov bl,dl
  232. and dl,1
  233. add dl,030h
  234. mov ah,2
  235. int 21h
  236. dec ch
  237. cmp ch,0
  238. jg z1
  239. loop o8
  240.  
  241. mov ah, 1
  242. int 21h
  243. mov ax, 4c00h ; exit to operating system.
  244. int 21h
  245. perenos proc
  246. mov ah,2 ;s novoi stroki
  247. mov dl,0dh
  248. int 21h
  249. mov ah,2 ;s nacala stroki
  250. mov dl,0ah
  251. int 21h
  252. ret
  253. perenos endp
  254.  
  255. ends
  256. end start ; set entry point and stop the assembler.

Решение задачи: «Как запустить данный код ассемблера»

textual
Листинг программы
  1. o7: push dx
  2. loop o3
  3. mov cx,5
  4. o6: pop dx

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут