Ads

Friday 11 October 2013

Microprocessor Architecture 5 changed OUTPUT

-------------------------------------------------------

SECTION .data
regmsg db 10,"REGISTER ADDRESSING MODE",10
regmsg_1 equ $-regmsg
immsg db 10,"IMMEDIATE ADDRESSING MODE",10
immsg_1 equ $-iimsg
memmsg db 10,"MEMORY ADDRESSING MODE",10
memmsg_1 equ $-memmsg

SECTION . bss
result resd 8
mem resd 8

%macro disp 2
mov eax,4
mov ebx,1
mov ecx,%1
mov edx,%2
int 80h
%endmacro

SECTION .text
 global _start
_start:

disp immsg,immsg_1
mov eax,10h
mov dword[result],eax
call disp32_proc

disp regmsg,regmsg_1
mov ebx,10h
mov eax,ebx
mov dword[result],10h
call disp32_proc

exit:
mov eax,1
mov ebx,0
int 80h

disp32_proc:

mov esi,result+7 ;load last byte address of result buffer in esi
mov ecx,8  ;number of digits
cnt: mov edx,0;make edx=0(as in div instruction)
mov ebx,16
div ebx
cmp dl,09h;check for remainder in edx
jbe add30
add dl,07h
add30:
add dl,30h;cdalcute ASCII code
mov [esi],dl;store it in buffer
dec esi;point to ont byte back

dec ecx;decrement count
jnz cnt;if not zero repeat

disp result,8;display result on screen
ret
--------------------------------------------
OUTPUT:
pict@pict-pc:~$ gedit asgn5.asm&
[1] 1910
pict@pict-pc:~$nasm -f elf asgn5.asm
pict@pict-pc:~$ld -oasgn5.o
pict@pict-pc:~$./asgn5
IMMEDIATE ADDRESSING MODE
00000010
REGISTER ADDRESSING MODE
00000010
MEMORY ADDRESSING MODE
00000010
pict@pict-pc:~$

No comments:

Post a Comment