Advertisement
tsnaik

MFP lab5

Aug 9th, 2015
471
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 10/8/15
  2.  
  3. MOVSB
  4. CMPSB
  5. DAA
  6. AAA
  7. AAM // now in next lab
  8. AAD // now in next lab
  9.  
  10. 1. Moving a string
  11.  
  12. data segment
  13.     str1 db 'Hello How are you'
  14.     length1 equ($-str1)
  15.     str2 db 100 dup(0)
  16. data ends
  17.  
  18. code segment
  19.  
  20.     assume cs:code, ds:data, es:data
  21.     MOV AX,Data
  22.     MOV DS,AX
  23.     MOV ES,AX
  24.    
  25.     LEA SI,str1
  26.     LEA DI,str2
  27.     MOV CX,length1
  28.     REP MOVSB
  29.    
  30.     MOV byte ptr[DI],'$'
  31.     MOV DX,offset str2
  32.     MOV AH,09
  33.     INT 21h
  34.     INT 3
  35. code ends
  36. end
  37.  
  38.  
  39. 2. finding number of vowels in a string
  40.  
  41. data segment
  42.     str1 db 'this string has six vowels'
  43.     length1 equ($-str1)
  44.    
  45. data ends
  46.  
  47. code segment
  48.  
  49.     assume cs:code, ds:data, es:data
  50.     MOV AX,Data
  51.     MOV DS,AX
  52.     MOV ES,AX
  53.     MOV BL,0
  54.     MOV CX,length1
  55.    
  56.     LEA SI,str1
  57. X1: CMP byte ptr[SI],'a'
  58.     JZ next
  59.    
  60.     CMP byte ptr[SI],'e'
  61.     JZ next
  62.    
  63.     CMP byte ptr[SI],'i'
  64.     JZ next
  65.    
  66.     CMP byte ptr[SI],'o'
  67.     JZ next
  68.    
  69.     CMP byte ptr[SI],'u'
  70.     JZ next
  71.  
  72.     CMP byte ptr[SI],'A'
  73.     JZ next
  74.    
  75.     CMP byte ptr[SI],'E'
  76.     JZ next
  77.    
  78.     CMP byte ptr[SI],'I'
  79.     JZ next
  80.    
  81.     CMP byte ptr[SI],'O'
  82.     JZ next
  83.    
  84.     CMP byte ptr[SI],'U'
  85.     JZ next
  86.    
  87.     CMP SI,CX
  88.     JZ EXIT
  89.        
  90.     INC SI
  91.     JMP X1
  92.    
  93. next:   CMP SI,CX
  94.     JZ EXIT
  95.    
  96.  
  97.     INC SI
  98.     INC BL
  99.     JMP X1
  100.  
  101. exit:   INT 3
  102.    
  103.  
  104. code ends
  105. end
  106.  
  107.  
  108. 3. AAA Program
  109.  
  110. data segment
  111.    
  112.    
  113. data ends
  114.  
  115. code segment
  116.  
  117.     assume cs:code, ds:data
  118.     MOV AX,Data
  119.     MOV DS,AX
  120.     XOR AX,AX
  121.    
  122.    
  123.     MOV AL,35H
  124.     MOV BL,33H
  125.     ADD AL,BL
  126.     AAA
  127.  
  128.     INT 3
  129.    
  130.  
  131. code ends
  132. end
  133.  
  134.  
  135. 4. DAA Program
  136.  
  137. data segment
  138.    
  139.    
  140. data ends
  141.  
  142. code segment
  143.  
  144.     assume cs:code, ds:data
  145.     MOV AX,Data
  146.     MOV DS,AX
  147.     XOR AX,AX
  148.    
  149.    
  150.     MOV AL,59H
  151.     MOV BL,35H
  152.     ADD AL,BL
  153.     DAA
  154.  
  155.     INT 3
  156.    
  157.  
  158. code ends
  159. end
  160.  
  161.  
  162. 5. DAA without DAA
  163.  
  164. data segment
  165.    
  166.    
  167. data ends
  168.  
  169. code segment
  170.  
  171.     assume cs:code, ds:data
  172.     MOV AX,data
  173.     MOV DS,AX
  174.     MOV AL,59H
  175.     ADD BL,35H
  176.     ADD AL,BL
  177.     MOV DL,AL
  178.     AND AL,0FH
  179.     CMP AL,09
  180.     JG sixadd
  181.    
  182. again:  MOV AL,DL
  183.     AND AL,0F0H
  184.     CMP AL,90H
  185.     JG sixtyadd
  186.     JMP exit
  187.    
  188. sixadd:
  189.     ADD DL,06H
  190.     JMP again
  191.        
  192. sixtyadd:  
  193.     ADD DL,60H
  194.      
  195. exit:  
  196.     MOV AX,DX
  197.     INT 3
  198.    
  199. code ends
  200. end
  201.  
  202.  
  203.  
  204. ASSIGNMENT:
  205. str1 db 'ABCBA'
  206. str2 db reverse karine nakho
  207.  
  208. pelindrome or not. use CMPSB.
  209. ek ek character compare karo banne no and jo alag aave to print ke not pelindrome. otherwise pelindrome.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement