Professional Documents
Culture Documents
Prac
Prac
section.data
section.txt
global _start
_start:
mov eax,4
mov ebx,1
mov ecx,hello
mov edx, hellolen
int 80h
mov eax,1
mov ebx,0
int 80h
o/p
Hello world!
2]Print 9 stars
section.data
star times 9 db '*'
section.text
global _start
_start:
mov eax,4
mov ebx,1
mov ecx,star
mov edx,9
int 80h
mov eax,1
mov ebx,0
int 80h
section .bss
num resb 5
section .text
global _start
_start:
mov eax,4
mov ebx,1
mov ecx,read1
mov edx,read1len
int 80h
mov eax,3
mov ebx,2
mov ecx,num
mov edx,5
int 80h
mov eax,4
mov ebx,1
mov ecx,read2
mov edx,read2len
int 80h
mov eax,4
mov ebx,1
mov ecx,num
mov edx,5
int 80h
mov eax,1
mov ebx,0
int 80h
section .bss
name resb 5
section .text
global _start
_start:
mov eax,4
mov ebx,1
mov ecx,string1
mov edx,string1len
int 80h
mov eax,3
mov ebx,2
mov ecx,name
mov edx,5
int 80h
mov eax,4
mov ebx,1
mov ecx,string2
mov edx,string2len
int 80h
mov eax,4
mov ebx,1
mov ecx,name
mov edx,5
int 80h
mov eax,1
mov ebx,0
int 80h
5.e]
%macro write 2
mov eax,4
mov ebx,1
mov ecx, %1
mov edx,%2
int 80h
%endmacro
%macro read 1
mov eax,3
mov ebx,2
mov ecx,%1
mov edx,5
int 80h
%endmacro
section .data
str1 db 'Enter the number: ',5
str1len equ $-str1
str2 db 'The number is: ',5
str2len equ $-str2
section .bss
num1 resb 5
section .text
global _start
_start:
write str1,str1len
read num1
write str2,str2len
write num1,5
mov eax,1
mov ebx,0
int 80h
5.3]%macro write 2
mov eax,4
mov ebx,1
mov ecx,%1
mov edx,%2
int 80h
%endmacro
%macro read 1
mov eax,3
mov ebx,2
mov ecx,%1
mov edx,5
int 80h
%endmacro
%macro newline 0
mov eax,4
mov ebx,1
mov ecx,n1
mov edx,n1len
int 80h
%endmacro
%macro addition 3
mov eax,[%1]
sub eax,'0'
mov ebx,[%2]
sub ebx,'0'
add eax,ebx
add eax,'0'
mov [%3],eax
int 80h
%endmacro
%macro subtraction 3
mov eax,[%1]
sub eax,'0'
mov ebx,[%2]
sub ebx,'0'
sub eax,ebx
add eax,'0'
mov [%3],eax
int 80h
%endmacro
%macro mult 3
mov al,[%1]
sub al,'0'
mov bl,[%2]
sub bl,'0'
mul bl
add al,'0'
mov [%3],eax
int 80h
%endmacro
%macro division 4
mov al,[%1]
sub al,'0'
mov bl,[%2]
sub bl,'0'
div bl
add al,'0'
add ah,'0'
mov [%3],al
mov [%4],ah
int 80h
%endmacro
section .data
section .bss
num1 resb 5
num2 resb 5
sum resb 5
diff resb 5
prod resb 5
quo resb 5
rem resb 5
section .text
global _start
_start:
write str1,str1len
read num1
write str1,str1len
read num2
addition num1,num2,sum
write str2,str2len
write sum,5
newline
subtraction num1,num2,diff
write str3,str3len
write diff,5
newline
mult num1,num2,prod
write str4,str4len
write prod,5
newline
division num1,num2,quo,rem
write str5,str5len
write quo,5
newline
write str6,str6len
write rem,6
mov eax,1
mov ebx,0
int 80h
%macro write 2
mov eax,4
mov ebx,1
mov ecx,%1
mov edx,%2
int 80h
%endmacro
%macro newline 0
mov eax,4
mov ebx,1
mov ecx,n1
mov edx,n1len
int 80h
%endmacro
%macro fib 3
mov eax,[%1]
sub eax,'0'
mov ebx,[%2]
sub ebx,'0'
add eax,ebx
add eax,'0'
mov [%3],eax
int 80h
%endmacro
section .data
section .bss
n resb 4
a resb 4
b resb 4
c resb 4
i resb 4
section .text
global _start:
_start:
write str1,str1len
read n
write str2,str2len
mov byte[i],'0'
mov byte[a],'0'
mov byte[b],'1'
cmp byte[n],'0'
JE L4
JMP L1
L1:
write a,4
inc byte[i]
mov al,[i]
cmp al,byte[n]
JE L4
JMP L2
L2:
write b,4
inc byte[i]
mov al,[i]
cmp al,byte[n]
JE L4
JMP L3
L3:
fib a,b,c
write c,4
mov al,[b]
mov [a],al
mov al,[c]
mov [b],al
inc byte[i]
mov al,[i]
cmp al,byte[n]
JE L4
JMP L3
L4:
newline
mov eax,1
mov ebx,0
int 80h
5.f]%macro read 1
mov eax,3
mov ebx,2
mov ecx,%1
mov edx,4
int 80h
%endmacro
%macro write 2
mov eax,4
mov ebx,1
mov ecx,%1
mov edx,%2
int 80h
%endmacro
%macro newline 0
mov eax,4
mov ebx,1
mov ecx,n1
mov edx,n1len
int 80h
%endmacro
section .data
section .bss
n resb 4
i resb 4
section .text
global _start:
_start:
write str1,str1len
read n
newline
write str2,str2len
newline
mov byte[i],'0'
L1:
write str3,str3len
newline
inc byte[i]
mov al,[i]
cmp al,byte[n]
JE L2
JMP L1
L2:
newline
mov eax,1
mov ebx,0
int 80h
8.1]%macro read 1
mov eax,3
mov ebx,2
mov ecx,%1
mov edx,4
int 80h
%endmacro
%macro write 2
mov eax,4
mov ebx,1
mov ecx,%1
mov edx,%2
int 80h
%endmacro
%macro newline 0
mov eax,4
mov ebx,1
mov ecx,n1
mov edx,n1len
int 80h
%endmacro
section .data
section .bss
n resb 9
i resb 9
ele resb 10
section .text
global _start:
_start:
write str1,str1len
read n
write str2,str2len
newline
mov byte[i],'0'
mov esi, array
input:
read ele
mov ebx,[ele]
mov [esi],ebx
inc esi
inc byte[i]
mov al,[i]
mov bl,[n]
sub bl,'0'
cmp al,bl
;JE L2
JL input
L2:
write str3,str3len
newline
mov byte[i],'0'
mov esi,array
output:
mov ebx,[esi]
mov [ele],ebx
write ele,5
inc esi
inc byte[i]
mov al,[i]
mov bl,[n]
sub bl,'0'
cmp al,bl
;JE exit
JL output
mov eax,1
mov ebx,0
int 80h
8.2]%macro read 2
mov eax, 3
mov ebx, 2
mov ecx, %1
mov edx, %2
int 80h
%endmacro
%macro write 2
mov eax,4
mov ebx,1
mov ecx,%1
mov edx,%2
int 80h
%endmacro
%macro newline 0
mov eax,4
mov ebx,1
mov ecx,n1
mov edx,n1len
int 80h
%endmacro
section .data
section .bss
n resb 10
i resb 10
ele resb 10
rem resb 5
nodd resb 5
neven resb 5
section .text
global _start
_start:
write str1,str1len
read n,5
write str2,str2len
mov byte[i], 0
mov byte[nodd], 0
mov byte[neven], 0
mov esi, array
input:
read ele,2
mov ebx, [ele]
mov [esi], ebx
inc esi
inc byte[i]
mov byte[i], 0
mov esi, array
check:
even:
inc byte[neven]
jmp looper
odd:
inc byte[nodd]
jmp looper
looper:
inc esi
inc byte[i]
mov al,[i]
mov bl,[n]
sub bl,'0'
cmp al,bl
JL check
JE output
output:
add [neven],byte '0'
add [nodd],byte '0'
write str3,str3len
write nodd,5
newline
write str4,str4len
write neven,5
mov eax,1
mov ebx,0
int 80h