Differences

This shows you the differences between two versions of the page.

Link to this comparison view

iocla:cursuri:capitol-07:demo:01 [2016/11/21 11:48]
laura.vasilescu [C to Assembly]
— (current)
Line 1: Line 1:
-===== 1. Variabile globale ===== 
  
-Dorim să înțelegem rolul variabilelor globale și să învățăm cum le putem folosi. 
- 
-==== C to Assembly ==== 
- 
-Vom scrie programe în C pe care le vom compila folosind consola MINGW pentru a putea observa assembly-ul generat. 
- 
-Deschideți consola MINGW. (''​C:​\MinGW\msys\1.0\msys.bat''​) 
- 
-<code c test.c> 
-#include <​stdio.h>​ 
- 
-int my_g = 1000; 
- 
-int main(void) 
-{ 
- return 0; 
-} 
-</​code>​ 
-Pentru generarea fișierului assembly folosiți: ''​gcc -S -O0 -masm=intel -o test.asm test.c''​.\\ 
-Observați următoarea secțiune: 
-<​code>​ 
-.globl _my_g 
- .data 
- .align 4 
-_my_g: 
- .long 1000 
-</​code>​ 
-Adăugați, pe rând, câte o variabilă globală de tip ''​char'',​ ''​short'',​ ''​long''​ și ''​long long''​.\\ 
-Ar trebui să observați ceva similar cu: 
-<​code>​ 
-.globl _my_hhg 
- .data 
-_my_hhg: 
- .byte 10 
-.globl _my_hg 
- .align 2 
-_my_hg: 
- .word 100 
-.globl _my_g 
- .align 4 
-_my_g: 
- .long 1000 
-.globl _my_lg 
- .align 4 
-_my_lg: 
- .long 10000 
-.globl _my_llg 
- .align 8 
-_my_llg: 
- .quad 100000 
-</​code>​ 
-<​hidden>​ 
-Variabilele apar în ordinea în care au fost definite, însă acest lucru nu e standard afaik. 
-</​hidden>​ 
- 
-<​note>​ 
-Observați că sintaxa este asemănătoare,​ dar diferită față de ce ați folosit până acum în laborator. 
-</​note>​ 
- 
-==== NASM vs. GAS ==== 
-==== NASM ==== 
iocla/cursuri/capitol-07/demo/01.1479721728.txt.gz · Last modified: 2016/11/21 11:48 by laura.vasilescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0