2
ATPS – N1 Paradigmas de linguagem de programação 3. Apresente um exemplo de trecho código fácil e difícil de ler, indique de quais linguagens de programação eles se referem. Explique o porquê da diferença. Assembly C# 1 %ifdef NetBSD // A Hello World! Programado em C#. 2 using System; 3 section .note.netbsd.ident namespace HelloWorld 4 dd 7,4,1 { 5 db "NetBSD",0,0 class Hello 6 dd 200000000 ; amd64 supported since 2.0 { 7 %endif static void Main() 8 { 9 %ifdef OpenBSD Console.WriteLine("Hello World!"); 1 0 1 1 section .note.openbsd.ident // Mantenha a janela de console aberta no modo debug(depuração). 1 2 align 2 Console.WriteLine("Pressione uma tecla para sair."); 1 3 dd 8,4,1 Console.ReadKey(); 1 4 db "OpenBSD",0 } 1 5 dd 0 } 1 6 align 2 } 1 7 %endif 1 8 1 9 section .text 2 0 %ifidn __OUTPUT_FORMAT__, macho64 ; MacOS X 2 1 2 2 %define SYS_exit 0x2000001 2 3 %define SYS_write 0x2000004 2 4 global start 2 5 start: 2 6 %elifidn __OUTPUT_FORMAT__, elf64 2 7 2 8 %ifdef UNIX ; Solaris/OI/FreeBSD/NetBSD/OpenBSD/DragonFly 2 9 %define SYS_exit 1 3 0 %define SYS_write 4 3 %else ; Linux

ATPS Paradigamas de Linguagem de Programação - Claudio

Embed Size (px)

Citation preview

ATPS N1 Paradigmas de linguagem de programao

3. Apresente um exemplo de trecho cdigo fcil e difcil de ler, indique de quais linguagens de programao eles se referem. Explique o porqu da diferena.AssemblyC#1%ifdefNetBSD// A Hello World! Programado em C#.

2using System;

3section .note.netbsd.identnamespace HelloWorld

4dd7,4,1{

5db"NetBSD",0,0 class Hello

6dd200000000 ; amd64 supported since 2.0 {

7%endif staticvoid Main()

8 {

9%ifdefOpenBSD Console.WriteLine("Hello World!");

10

11section .note.openbsd.ident // Mantenha a janela de console aberta no modo debug(depurao).

12align 2 Console.WriteLine("Pressione uma tecla para sair.");

13dd8,4,1 Console.ReadKey();

14db"OpenBSD",0 }

15dd0 }

16align 2}

17%endif

18

19section .text

20%ifidn __OUTPUT_FORMAT__, macho64 ; MacOS X

21

22%define SYS_exit0x2000001

23%define SYS_write 0x2000004

24globalstart

25start:

26%elifidn __OUTPUT_FORMAT__, elf64

27

28%ifdefUNIX; Solaris/OI/FreeBSD/NetBSD/OpenBSD/DragonFly

29%define SYS_exit1

30%define SYS_write 4

31%else ; Linux

32%define SYS_exit60

33%define SYS_write 1

34%endif

35global_start

36_start:

37%else

38

39%error"Unsupported platform"

40%endif

41

42mov rax,SYS_write

43mov rdi,1 ; stdout

44mov rsi,msg

45mov rdx,len

46syscall

47mov rax,SYS_exit

48xor rdi,rdi ; exit code 0

49syscall

50section .data

51msg db"Hello, world!",10

52len equ $-msg

53

O exemplo da linguagem C# de fcil leitura, por sem uma linguagem de alto nvel (mais prxima da linguagem humana), J o escrito em Assembly trata-se de uma linguagem de baixo nvel (mais prxima da linguagem de mquina.)