943,755 Members | Top Members by Rank

Ad:
  • Assembly Discussion Thread
  • Unsolved
  • Views: 423
  • Assembly RSS
Sep 11th, 2009
0

Why can't the second hand go to twelve?

Expand Post »
DATA segment
produ1 dw 4 dup(0)
produ2 dw 4 dup(0)
produ3 dw 4 dup(0)
produ4 dw 3000h dup(0)
produ5 dw 3000h dup(0)

r=181
x=300
y=240
DATA ends

code segment
assume cs:code,dsATA
Assembly Syntax (Toggle Plain Text)
  1. start:
  2.  
  3. mov bx,505fh
  4. mov ax,4f02h
  5. int 10h
  6. mov ax,DATA
  7. mov ds,ax
  8.  
  9.  
  10. mov si,0
  11. mov cx,x-r
  12. mov dx,y
  13. mov al,02
  14. mov ah,0ch
  15. int 10h
  16. lop1:mov dx,y
  17. inc cx
  18. mov produ1+2,cx
  19. mov produ1+4,dx
  20. add si,1
  21. mov ax,r
  22. sub ax,si
  23. mul ax
  24. mov bx,ax
  25. mov cx,dx
  26. mov ax,r
  27. mul ax
  28. call shuangjian
  29. call sqr
  30. mov dx,produ1+4
  31. mov cx,produ1+2
  32. sub dx,bp
  33. mov al,02
  34. mov ah,0ch
  35. int 10h
  36. cmp cx,x
  37. je exit1
  38. cmp dx,y-r
  39. je exit1
  40. jmp lop1
  41. exit1:
  42. mov si,0
  43. mov cx,x
  44. mov dx,y-r
  45. mov al,02
  46. mov ah,0ch
  47. int 10h
  48. lop2:mov cx,x
  49. inc dx
  50. mov produ1+2,dx
  51. mov produ1+4,cx
  52. add si,1
  53. mov ax,r
  54. sub ax,si
  55. mul ax
  56. mov bx,ax
  57. mov cx,dx
  58. mov ax,r
  59. mul ax
  60. call shuangjian
  61. call sqr
  62. mov cx,produ1+4
  63. mov dx,produ1+2
  64. sub cx,bp
  65. cmp cx,x-r
  66. je exit2
  67. mov al,02
  68. mov ah,0ch
  69. int 10h
  70. jmp lop2
  71. exit2:
  72. mov si,0
  73. mov cx,x+r
  74. mov dx,y
  75. mov al,02
  76. mov ah,0ch
  77. int 10h
  78. lop3:mov dx,y
  79. dec cx
  80. mov produ1+2,cx
  81. mov produ1+4,dx
  82. add si,1
  83. mov ax,r
  84. sub ax,si
  85. mul ax
  86. mov bx,ax
  87. mov cx,dx
  88. mov ax,r
  89. mul ax
  90. call shuangjian
  91. call sqr
  92. mov dx,produ1+4
  93. mov cx,produ1+2
  94. sub dx,bp
  95. cmp dx,y-r
  96. je exit3
  97. mov al,02
  98. mov ah,0ch
  99. int 10h
  100. jmp lop3
  101. exit3:
  102. mov si,0
  103. mov cx,x
  104. mov dx,y-r
  105. mov al,02
  106. mov ah,0ch
  107. int 10h
  108. lop4:mov cx,x
  109. inc dx
  110. mov produ1+2,dx
  111. mov produ1+4,cx
  112. add si,1
  113. mov ax,r
  114. sub ax,si
  115. mul ax
  116. mov bx,ax
  117. mov cx,dx
  118. mov ax,r
  119. mul ax
  120. call shuangjian
  121. call sqr
  122. mov cx,produ1+4
  123. mov dx,produ1+2
  124. add cx,bp
  125. cmp cx,x+r
  126. je exit4
  127. mov al,02
  128. mov ah,0ch
  129. int 10h
  130. jmp lop4
  131. exit4:
  132. mov si,0
  133. mov cx,x
  134. mov dx,y+r
  135. mov al,02
  136. mov ah,0ch
  137. int 10h
  138. lop5:mov cx,x
  139. dec dx
  140. mov produ1+2,dx
  141. mov produ1+4,cx
  142. add si,1
  143. mov ax,r
  144. sub ax,si
  145. mul ax
  146. mov bx,ax
  147. mov cx,dx
  148. mov ax,r
  149. mul ax
  150. call shuangjian
  151. call sqr
  152. mov cx,produ1+4
  153. mov dx,produ1+2
  154. add cx,bp
  155. cmp cx,x+r
  156. je exit5
  157. mov al,02
  158. mov ah,0ch
  159. int 10h
  160. jmp lop5
  161. exit5:
  162. mov si,0
  163. mov cx,x+r
  164. mov dx,y
  165. mov al,02
  166. mov ah,0ch
  167. int 10h
  168. lop6:mov dx,y
  169. dec cx
  170. mov produ1+2,cx
  171. mov produ1+4,dx
  172. add si,1
  173. mov ax,r
  174. sub ax,si
  175. mul ax
  176. mov bx,ax
  177. mov cx,dx
  178. mov ax,r
  179. mul ax
  180. call shuangjian
  181. call sqr
  182. mov dx,produ1+4
  183. mov cx,produ1+2
  184. add dx,bp
  185. cmp dx,y+r
  186. je exit6
  187. mov al,02
  188. mov ah,0ch
  189. int 10h
  190. jmp lop6
  191. exit6:
  192. mov si,0
  193. mov cx,x-r
  194. mov dx,y
  195. mov al,02
  196. mov ah,0ch
  197. int 10h
  198. lop7:mov dx,y
  199. inc cx
  200. mov produ1+2,cx
  201. mov produ1+4,dx
  202. add si,1
  203. mov ax,r
  204. sub ax,si
  205. mul ax
  206. mov bx,ax
  207. mov cx,dx
  208. mov ax,r
  209. mul ax
  210. call shuangjian
  211. call sqr
  212. mov dx,produ1+4
  213. mov cx,produ1+2
  214. add dx,bp
  215. cmp dx,y+r
  216. je exit7
  217. mov al,02
  218. mov ah,0ch
  219. int 10h
  220. jmp lop7
  221. exit7:
  222. mov si,0
  223. mov cx,x
  224. mov dx,y+r
  225. mov al,02
  226. mov ah,0ch
  227. int 10h
  228. lop8:mov cx,x
  229. dec dx
  230. mov produ1+2,dx
  231. mov produ1+4,cx
  232. add si,1
  233. mov ax,r
  234. sub ax,si
  235. mul ax
  236. mov bx,ax
  237. mov cx,dx
  238. mov ax,r
  239. mul ax
  240. call shuangjian
  241. call sqr
  242. mov cx,produ1+4
  243. mov dx,produ1+2
  244. sub cx,bp
  245. cmp cx,x-r
  246. je exit8
  247. mov al,02
  248. mov ah,0ch
  249. int 10h
  250. jmp lop8
  251. exit8:
  252. r=160
  253. mov di,136
  254. mov si,0
  255. mov cx,x-r
  256. mov dx,y
  257. lop9:mov dx,y
  258. inc cx
  259. mov produ1+2,cx
  260. mov produ1+4,dx
  261. add si,1
  262. mov ax,r
  263. sub ax,si
  264. mul ax
  265. mov bx,ax
  266. mov cx,dx
  267. mov ax,r
  268. mul ax
  269. call shuangjian
  270. call sqr
  271. mov dx,produ1+4
  272. mov cx,produ1+2
  273. sub dx,bp
  274. cmp si,47
  275. jb lop10
  276. mov produ4[di],cx
  277. mov produ5[di],dx
  278. lop10:
  279. add di,2
  280. cmp cx,x
  281. je exit9
  282. cmp dx,y-r
  283. je exit9
  284. jmp lop9
  285. exit9:
  286. mov di,318
  287. mov si,0
  288. mov cx,x
  289. mov dx,y-r
  290. lop11:mov cx,x
  291. inc dx
  292. mov produ1+2,dx
  293. mov produ1+4,cx
  294. add si,1
  295. mov ax,r
  296. sub ax,si
  297. mul ax
  298. mov bx,ax
  299. mov cx,dx
  300. mov ax,r
  301. mul ax
  302. call shuangjian
  303. call sqr
  304. mov cx,produ1+4
  305. mov dx,produ1+2
  306. sub cx,bp
  307. cmp si,47
  308. jb lop12
  309. mov produ4[di],cx
  310. mov produ5[di],dx
  311. lop12:
  312. sub di,2
  313. cmp cx,x-r
  314. je exit10
  315. jmp lop11
  316. exit10:
  317. mov di,0
  318. lop1001:
  319. mov si,0
  320. mov cx,x
  321. mov dx,y
  322. mov al,02
  323. mov ah,0ch
  324. int 10h
  325. mov produ3+1,0
  326. lop1002:inc si
  327. mov bx,x
  328. sub bx,produ4[di]
  329. mov ax,bx
  330. mov bx,y
  331. sub bx,produ5[di]
  332. cmp ax,bx
  333. jb exit1006
  334. mul si
  335. div bx
  336. mov dx,240
  337. sub dx,si
  338. mov bp,ax
  339. push bp
  340. sub bp,produ3+1
  341. lop1003:
  342. dec bp
  343. mov al,02
  344. mov ah,0ch
  345. int 10h
  346. cmp bp,0
  347. je exit1001
  348. cmp dx,produ5[di]
  349. jb exit1002
  350. dec cx
  351. jmp lop1003
  352. exit1001:
  353. pop bp
  354. mov produ3+1,bp
  355. cmp cx,produ4[di]
  356. jb exit1002
  357. loop lop1002
  358. exit1002:
  359. jmp exit1007
  360. exit1006:jmp exit1005
  361. exit1007:
  362. call delay2
  363. mov si,0
  364. mov cx,x
  365. mov dx,y
  366. mov al,0
  367. mov ah,0ch
  368. int 10h
  369. mov produ3+1,0
  370. lop1004:inc si
  371. mov bx,x
  372. sub bx,produ4[di]
  373. mov ax,bx
  374. mov bx,y
  375. sub bx,produ5[di]
  376. cmp ax,bx
  377. jb exit1005
  378. mul si
  379. div bx
  380. mov dx,240
  381. sub dx,si
  382. mov bp,ax
  383. push bp
  384. sub bp,produ3+1
  385. lop1005:
  386. dec bp
  387. mov al,0
  388. mov ah,0ch
  389. int 10h
  390. cmp bp,0
  391. je exit1003
  392. cmp dx,produ5[di]
  393. jb exit1004
  394. dec cx
  395. jmp lop1005
  396. exit1003:
  397. pop bp
  398. mov produ3+1,bp
  399. cmp cx,produ4[di]
  400. jb exit1004
  401. loop lop1004
  402. exit1004:
  403. add di,14
  404. cmp di,1200
  405. jg exit1005
  406. jmp lop1001
  407. exit1005:
  408. lop2001:
  409. mov si,0
  410. mov cx,x
  411. mov dx,y
  412. mov al,02
  413. mov ah,0ch
  414. int 10h
  415. mov produ3+1,0
  416. lop2002:inc si
  417. mov bx,y
  418. sub bx,produ5[di]
  419. mov ax,bx
  420. mov bx,x
  421. sub bx,produ4[di]
  422. cmp bx,0
  423. jb exit2002
  424. mul si
  425. div bx
  426. mov dx,240
  427. mov cx,x
  428. sub cx,si
  429. mov bp,ax
  430. push bp
  431. sub bp,produ3+1
  432. sub dx,produ3+1
  433. lop2003:
  434. dec bp
  435. mov al,02
  436. mov ah,0ch
  437. int 10h
  438. cmp bp,0
  439. je exit2001
  440. cmp dx,produ5[di]
  441. jb exit2002
  442. dec dx
  443. jmp lop2003
  444. exit2001:
  445. pop bp
  446. mov produ3+1,bp
  447. cmp cx,produ4[di]
  448. jb exit2002
  449. loop lop2002
  450. exit2002:
  451. call delay2
  452. mov si,0
  453. mov cx,x;=300
  454. mov dx,y;240
  455. mov al,01
  456. mov ah,0ch
  457. int 10h
  458. mov produ3+1,0
  459. lop2004:inc si
  460. mov bx,y
  461. sub bx,produ5[di]
  462. mov ax,bx
  463. mov bx,x
  464. sub bx,produ4[di]
  465. cmp bx,0
  466. jb exit2005
  467. mul si
  468. div bx
  469. mov dx,240
  470. mov cx,x
  471. sub cx,si
  472. mov bp,ax
  473. push bp
  474. sub bp,produ3+1
  475. sub dx,produ3+1
  476. lop2005:
  477. dec bp
  478. mov al,01
  479. mov ah,0ch
  480. int 10h
  481. cmp bp,0
  482. je exit2003
  483. cmp dx,produ5[di]
  484. jb exit2005
  485. dec dx
  486. jmp lop2005
  487. exit2003:
  488. pop bp
  489. mov produ3+1,bp
  490. cmp cx,produ4[di]
  491. jb exit2004
  492. loop lop2004
  493. exit2004:
  494. add di,14
  495. cmp di,550
  496. jg exit2005
  497. jmp lop2001
  498. exit2005:
  499. mov ah,1
  500. int 21h
  501. mov ah,4ch
  502. int 21h
  503.  
  504. delay2 proc
  505. mov ah,01
  506. mov cx,0
  507. mov dx,0
  508. int 1ah
  509. delay:mov ah,00
  510. int 1ah
  511. cmp dx,12h;●
  512. jb delay
  513. ret
  514. delay2 endp
  515. sqr proc
  516. mov bp,0
  517. mov dx,01
  518. lop:sub bx,dx
  519. jb end0
  520. inc bp
  521. add dx,02
  522. jmp lop
  523. end0:
  524. ret
  525. sqr endp
  526. shuangjian proc
  527. sub dx,cx
  528. cmp ax,bx
  529. jg reduce
  530. xchg ax,bx
  531. sub ax,bx
  532. sub dx,0001
  533. mov bx,9999
  534. sub bx,ax
  535. jmp ok
  536. reduce:sub ax,bx
  537. mov bx,ax
  538. ok:add bx,1
  539. ret
  540. shuangjian endp
  541. code ends
  542. end start
Last edited by John A; Sep 11th, 2009 at 11:47 pm. Reason: added code tags
Similar Threads
Reputation Points: 10
Solved Threads: 0
Newbie Poster
x0s0z0 is offline Offline
2 posts
since Sep 2009
Sep 11th, 2009
1

Re: Why can't the second hand go to twelve?

Sorry, what you need is someone with a lot of free time to help you out.

First, code tags!
Second, COMMENTS! Your code is all crammed together with no comments. One has to understand fully what your code is doing before they can truly help you!

Once you fix that, and make it more clear exactly what your problem is, then help can be provided!
Reputation Points: 546
Solved Threads: 99
Practically a Posting Shark
wildgoose is offline Offline
891 posts
since Jun 2009

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in Assembly Forum Timeline: Phases of Compilation on Compilers and Interpreters
Next Thread in Assembly Forum Timeline: Fail to add ← function,why?





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC