section .data
menumsg db '-----------------Menu---------------------'
db '1:Concatenation of two strings',10
db '2:Occurences of substrings',10
db '3:Exit',10
menumsgln equ $-menumsg
mainstrmsg db 'Enter main string',10
mainstrln equ $-mainstrmsg
substrmsg db 'Enter sub-string',10
substrln equ $-substrmsg
concatstrmsg db 'Concatenation of two strings is',10
conln equ $-concatstrmsg
chomsg db 'Enter the choice',10
chomsgln equ $-chomsg
section .bss
global mainstr,substr,mstrl,sbstrl
%include "m.asm"
Extern concat,subcnt
mainstr resb 20
mainstrlnn: equ $-mainstr
substr resb 20
substrlnn: equ $-substr
cho resb 2
choln: equ $-cho
mstrl resb 2
sbstrl resb 2
section .text
global _start
_start:
menu:disp menumsg,menumsgln
disp chomsg,chomsgln
accept cho,choln
case1:cmp byte[cho],'1'
jne case2
disp mainstrmsg,mainstrln
accept mainstr,mainstrlnn
dec rax
mov [mstrl],ax
disp substrmsg,substrln
accept substr,substrlnn
dec ax
mov [sbstrl],ax
call concat
jmp menu
case2:cmp byte[cho],'2'
jne case3
disp mainstrmsg,mainstrln
accept mainstr,mainstrlnn
dec rax
mov [mstrl],ax
disp substrmsg,substrln
accept substr,substrlnn
dec ax
mov [sbstrl],ax
call subcnt
jmp menu
case3:cmp byte[cho],'3'
je ext
ext:mov eax,1
mov ebx,0
int 80h
menumsg db '-----------------Menu---------------------'
db '1:Concatenation of two strings',10
db '2:Occurences of substrings',10
db '3:Exit',10
menumsgln equ $-menumsg
mainstrmsg db 'Enter main string',10
mainstrln equ $-mainstrmsg
substrmsg db 'Enter sub-string',10
substrln equ $-substrmsg
concatstrmsg db 'Concatenation of two strings is',10
conln equ $-concatstrmsg
chomsg db 'Enter the choice',10
chomsgln equ $-chomsg
section .bss
global mainstr,substr,mstrl,sbstrl
%include "m.asm"
Extern concat,subcnt
mainstr resb 20
mainstrlnn: equ $-mainstr
substr resb 20
substrlnn: equ $-substr
cho resb 2
choln: equ $-cho
mstrl resb 2
sbstrl resb 2
section .text
global _start
_start:
menu:disp menumsg,menumsgln
disp chomsg,chomsgln
accept cho,choln
case1:cmp byte[cho],'1'
jne case2
disp mainstrmsg,mainstrln
accept mainstr,mainstrlnn
dec rax
mov [mstrl],ax
disp substrmsg,substrln
accept substr,substrlnn
dec ax
mov [sbstrl],ax
call concat
jmp menu
case2:cmp byte[cho],'2'
jne case3
disp mainstrmsg,mainstrln
accept mainstr,mainstrlnn
dec rax
mov [mstrl],ax
disp substrmsg,substrln
accept substr,substrlnn
dec ax
mov [sbstrl],ax
call subcnt
jmp menu
case3:cmp byte[cho],'3'
je ext
ext:mov eax,1
mov ebx,0
int 80h
No comments:
Post a Comment