Advertisement
Guest User

Untitled

a guest
Dec 11th, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. STACKSG SEGMENT PARA STACK
  2.     DB 64 DUP(?) ; область стека, не менее 32 слов
  3. STACKSG ENDS
  4.  
  5. DATASG SEGMENT PARA 'DATA'
  6.     str1 db "OO bbbb  ttttt   tt $", 0
  7.     str2 db 24 dup (" ")
  8. DATASG ENDS
  9.  
  10. CODESG SEGMENT PARA 'CODE'
  11.     ASSUME CS:CODESG,DS:DATASG,SS:STACKSG
  12.     ENTRY PROC FAR ; определить им¤ ENTRY как точку входа в основную программу из DOS (начало программы)
  13.     PUSH DS ; сохранить в стеке адрес возврата
  14.     SUB AX,AX ; обнулить регистр AX
  15.     PUSH AX ; занести в стек нулевое смещение дл¤ адреса возврата
  16.     MOV AX,DATASG
  17.     MOV DS,AX
  18.     xor SI, SI
  19.     xor DI, DI
  20.     lea SI, str1
  21.     lea DI, str2
  22. m1:
  23.     xor al, al
  24.     mov al, byte ptr[SI]
  25.     mov byte ptr[DI], al
  26.     test al,al
  27.     jz exit
  28.     cmp byte ptr[SI], " "
  29.     je m3
  30.     jne m2
  31. m2:
  32.     inc SI
  33.     inc DI
  34.     jmp m1
  35.    
  36. m3:
  37.     inc DI
  38. m4:
  39.     inc SI
  40.    
  41.     cmp byte ptr[SI], " "
  42.     je m4
  43.     jmp m1  
  44. exit:
  45. MOV AH,9;пауза в программе.
  46. LEA DX,str2
  47. INT 21H
  48. RET
  49. ENTRY ENDP
  50. CODESG ENDS
  51.  
  52. END ENTRY
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement