Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа испр.docx
Скачиваний:
22
Добавлен:
30.07.2019
Размер:
734.58 Кб
Скачать

Приложение 1 - Код основной программы

  1. .486

  2. assume CS:CodeSg, DS:DataSg, SS:StackSg

  3. CodeSg segment 'CODE' use16

  4. OpenUk proc

  5. mov AH, 3Dh

  6. mov AL, 00h

  7. xor CX, CX

  8. lea DX, UK

  9. int 21h

  10. mov descuk, AX

  11. ret

  12. OpenUk endp

  13. Set proc

  14. mov cx,variant

  15. dec cx

  16. ddd:

  17. call find0

  18. loop ddd

  19. ret

  20. Set endp

  21. find0 proc

  22. push cx

  23. mov bx, descuk

  24. push DS

  25. pop ES

  26. more:

  27. mov cx,10h

  28. mov ah,3fh

  29. lea dx,cmpstr

  30. int 21h

  31. lea si,cmpstr

  32. lea di,etstr

  33. mov cx,10h

  34. repe cmpsb

  35. cmp cx,0

  36. jnz more

  37. pop cx

  38. ret

  39. find0 endp

  40. Read proc

  41. mov AH, 3Fh

  42. mov BX, descuk

  43. mov CX, 10240

  44. lea DX, kadr

  45. int 21h

  46. ret

  47. Read endp

  48. CloseUk proc

  49. mov AH, 3Eh

  50. mov BX, descuk

  51. int 21h

  52. ret

  53. CloseUk endp

  54. CreatMy proc

  55. mov AH, 3Ch

  56. xor CX, CX

  57. mov DX, offset my

  58. int 21h

  59. mov descmy, AX

  60. ret

  61. CreatMy endp

  62. Rec proc

  63. mov AH, 40h

  64. mov BX, descmy

  65. mov CX, 10240

  66. lea DX, kadr

  67. int 21h

  68. ret

  69. Rec endp

  70. CloseMy proc

  71. mov AH, 3Eh

  72. mov BX, descmy

  73. int 21h

  74. ret

  75. CloseMy endp

  76. CreateResult proc

  77. mov AH, 3Ch

  78. xor CX, CX

  79. mov DX, offset result

  80. int 21h

  81. mov descrsl, AX

  82. ret

  83. CreateResult endp

  84. CloseResult proc

  85. mov AH, 3Eh

  86. mov BX, descrsl

  87. int 21h

  88. ret

  89. CloseResult endp

  90. Write proc

  91. mov AH, 40h

  92. mov BX, descrsl

  93. mov CX, kol_b

  94. mov DX, offset Res

  95. int 21h

  96. ret

  97. Write endp

  98. Vibor proc

  99. lea SI, kadr

  100. sub SI, 16

  101. lea DI, Res

  102. mov CX, kol_b

  103. Make_byte:

  104. push CX

  105. mov CX, 4

  106. xor DX, DX

  107. Look_string:

  108. push CX

  109. push SI

  110. push SI

  111. add SI, Byte_1

  112. mov AX, [SI]

  113. mov CX, Bit_1

  114. BT AX, CX

  115. rcl DX, 1

  116. pop SI

  117. add SI, Byte_2

  118. mov AX, [SI]

  119. mov CX, Bit_2

  120. BT AX, CX

  121. rcl DX, 1

  122. pop SI

  123. add SI, 16

  124. pop CX

  125. loop Look_string

  126. mov [DI], DL

  127. inc DI

  128. pop CX

  129. loop Make_byte

  130. ret

  131. Vibor endp

  132. begin:

  133. mov AX, DataSg

  134. mov DS, AX

  135. mov AX, StackSg

  136. mov SS, AX

  137. push DS

  138. pop ES

  139. call OpenUk

  140. call Set

  141. call Read

  142. call CloseUK

  143. call CreatMy

  144. call Rec

  145. call CloseMy

  146. call CreateResult

  147. call Vibor

  148. call Write

  149. call CloseResult

  150. mov AX, 4C00h

  151. int 21h

  152. CodeSg ends

  153. DataSg segment 'DATA' use16

  154. cmpstr db 16 dup(?)

  155. etstr db 16 dup (0)

  156. variant dw 14

  157. Byte_1 dw 23

  158. Bit_1 dw 1

  159. Byte_2 dw 25

  160. Bit_2 dw 7

  161. kol_b dw 160

  162. Res db 160 dup (?)

  163. uk db "UK64.dat",0

  164. my db "MY.dat",0

  165. result db "RESULT.dat",0

  166. descuk dw ?

  167. descmy dw ?

  168. descrsl dw ?

  169. kadr db 10256 dup(?)

  170. DataSg ends

  171. StackSg segment stack 'STACK' use16

  172. db 256 dup(0)

  173. StackSg ends

  174. end begin