Extern

1
extern _printf, _scanf segment .data msj db "introducir cadena con caracteres:",0 msj2 db"el umero total de vocales a y u es:%d",0 formato db "%s" d dd 100 segment .bss c resd 25 segment .text global _main _main: ;-------------------------------- ------- push msj call _printf add esp,4 push c push formato call _scanf add esp,8 push c call cant add esp,4 push esi push msj2 call _printf add esp,8 ret ;-------------------------------- ------- ;..........subrutina............. ....... cant: xor eax,eax xor ecx,ecx xor edx,edx xor esi,esi push ebp mov ebp,esp mov ebx,[ebp+8] ciclo: mov al,[ebx] cmp al,0x61 jz cont cmp al,0x75 jz cont back: inc ebx dec dword[d] jnz ciclo jmp fin cont: inc esi jmp back fin: mov esp,ebp pop ebp ret extern _printf, _scanf segment .data ms1 db "Introducir el numero:",0,10 formato db "%d",0,10 ms2 db "El caudrado es : %d",0,10 segment .bss num resd 1 segment .text global _main _main: ;-------------------------------- ------- push ms1 call _printf add esp,4 push num push formato call _scanf add esp,8 ;mov ecx,2 xor eax,eax xor ebx,ebx push dword [num] call cuadrado ;..........subrutina.... ............... add esp,4 mov [num],eax push dword [num] push ms2 call _printf add esp,8 ret cuadrado: push ebp mov ebp,esp mov eax,[ebp+8] mov ebx,[ebp+8] mul ebx mov esp,ebp pop ebp ret

Transcript of Extern

Page 1: Extern

extern _printf, _scanf

segment .datamsj db "introducir cadena con caracteres:",0msj2 db"el umero total de vocales a y u es:%d",0formato db "%s"d dd 100segment .bssc resd 25segment .text

global _main

_main:;---------------------------------------push msjcall _printfadd esp,4

push cpush formatocall _scanfadd esp,8

push ccall cantadd esp,4push esipush msj2call _printfadd esp,8

ret;---------------------------------------;..........subrutina....................cant:xor eax,eaxxor ecx,ecxxor edx,edxxor esi,esipush ebpmov ebp,espmov ebx,[ebp+8]ciclo:mov al,[ebx]cmp al,0x61jz contcmp al,0x75jz contback:inc ebxdec dword[d]jnz ciclo jmp fincont:inc esijmp backfin:mov esp,ebppop ebpret

extern _printf, _scanf

segment .datams1 db "Introducir el numero:",0,10formato db "%d",0,10ms2 db "El caudrado es : %d",0,10segment .bssnum resd 1segment .text global _main _main:;---------------------------------------

push ms1call _printfadd esp,4

push numpush formatocall _scanfadd esp,8

;mov ecx,2xor eax,eaxxor ebx,ebxpush dword [num]

call cuadrado

;..........subrutina...................add esp,4mov [num],eax

push dword [num]push ms2call _printfadd esp,8ret

cuadrado: push ebpmov ebp,esp

mov eax,[ebp+8]mov ebx,[ebp+8]mul ebx

mov esp,ebppop ebpret