{"id":13678750,"url":"https://github.com/zakarialaoui10/HIGH-TO-LOW","last_synced_at":"2025-04-29T15:33:02.308Z","repository":{"id":38087346,"uuid":"378984068","full_name":"zakarialaoui10/HIGH-TO-LOW","owner":"zakarialaoui10","description":"in this repository you will find codes in C and their equivalence in MIPS Assembly","archived":false,"fork":false,"pushed_at":"2024-04-08T22:09:14.000Z","size":1788,"stargazers_count":32,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-04-08T23:29:39.453Z","etag":null,"topics":["asm","assembly","c","high-level","low-level","mars","micro","microcontroller","microprocessor","mips","morocco"],"latest_commit_sha":null,"homepage":"","language":"Assembly","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zakarialaoui10.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-06-21T15:49:10.000Z","updated_at":"2024-04-14T22:31:15.344Z","dependencies_parsed_at":"2023-02-10T06:45:32.251Z","dependency_job_id":"fdc3270e-ff26-4b0c-a465-124ca0015697","html_url":"https://github.com/zakarialaoui10/HIGH-TO-LOW","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zakarialaoui10%2FHIGH-TO-LOW","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zakarialaoui10%2FHIGH-TO-LOW/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zakarialaoui10%2FHIGH-TO-LOW/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zakarialaoui10%2FHIGH-TO-LOW/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zakarialaoui10","download_url":"https://codeload.github.com/zakarialaoui10/HIGH-TO-LOW/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224179071,"owners_count":17268997,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asm","assembly","c","high-level","low-level","mars","micro","microcontroller","microprocessor","mips","morocco"],"created_at":"2024-08-02T13:00:57.788Z","updated_at":"2025-04-29T15:33:02.301Z","avatar_url":"https://github.com/zakarialaoui10.png","language":"Assembly","funding_links":[],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"readme":"\u003c!--    \ndocs\nsolid-start ( structure ) \nziko-wrapper ( )  \nzikojs ( components ) \nmdzjs ( articles )\nziko-code ( code component )\nssr \ntaylor series \nrename to mips 101 ?  \n    \n --\u003e \n\n## This repository contains C code examples along with their MIPS Assembly equivalents.           \n      \n\n- [1-Hello World](#hello-world) \n- [2-Print an integer](#print-an-integer)\n- [3-Print an float](#print-a-float)\n- [4-Read and print an integer](#read-and-print-an-integer)\n- [5-Addition of 2 integers](#addition-of-2-integers) \n- [6-Substraction of 2 integers](#substraction-of-2-integers)\n- [7-If else statement](#if-else-statement)\n- [8-nested if](#nested-if)\n        \n         \n     \n### hello world      \n###### C            \n```c       \n#include\u003cstdio.h\u003e   \nint main(){  \n  printf(\"hello world\"); \n  return 0;\n}   \n```  \n###### MIPS Assembly\n```assembly\n.data\n msg: .asciiz \"hello world\"\n.text\n li $v0,4\n la $a0,msg\n syscall\n```\n### print an integer\n###### C\n```c\n#include\u003cstdio.h\u003e\nint main(){\nint number=2;\n  printf(\"%d\",number);\n  return 0;\n}\n```\n###### MIPS Assembly\n```assembly \n.data\n number: .word 2\n.text \n li $v0,1 \n lw $a0,number\n syscall \n```\n### print a float\n###### C\n```c\n#include\u003cstdio.h\u003e\nint main(){\nfloat number=2.5;\n  printf(\"%f\",number);\n  return 0;\n}\n```\n###### MIPS Assembly\n```assembly\n.data\n number: .float 2.5\n.text\n li $v0,2\n lwc1 $f12,number\n syscall \n```\n### read and print an integer \n###### C\n```c\n#include\u003cstdio.h\u003e\nint main(){\nint a;\nprintf(\"enter an integer : \");\nscanf(\"%d\",\u0026a);\nprintf(\"your integer is : \");\nprintf(\"%d\",a);\nreturn 0;\n}\n```\n###### MIPS Assembly\n```assembly\n.data\n msg1: .asciiz \"enter an integer : \"\n msg2: .asciiz \"your integer is  : \"\n.text\n print_msg1:li $v0,4\n           la $a0,msg1\n           syscall \n read_integer:li $v0,5\n              syscall \n la $s0,($v0) #save_integer_in_s0:\n print_msg2:li $v0,4\n            la $a0,msg2\n            syscall              \n print_integer:li $v0,1\n               la $a0,($s0)\n               syscall \n```\n### addition_of_2_integers\n###### C\n```c\n#include\u003cstdio.h\u003e\nint main()\n{\n  int a,b,c;\n  scanf(\"%d%d\",\u0026a,\u0026b);\n  c=a+b;\n  printf(\"%d\",c);\n  return 0;\n}\n```\n###### MIPS Assembly\n```assembly\nli $v0,5\nsyscall\nmove $s0,$v0\nli $v0,5\nsyscall\nmove $s1,$v0\nadd $s2,$s1,$s0\nli $v0,1\nmove $a0,$s2\nsyscall\n```\n### substraction of 2 integers \n###### C\n```c\n#include\u003cstdio.h\u003e\nint main()\n{\n  int a,b,c;\n  scanf(\"%d%d\",\u0026a,\u0026b);\n  c=a-b;\n  printf(\"%d\",c);\n  return 0;\n}\n```\n###### MIPS Assembly\n```assembly\nli $v0,5\nsyscall\nmove $s0,$v0\nli $v0,5\nsyscall\nmove $s1,$v0\nsub $s2,$s0,$s1\nli $v0,1\nmove $a0,$s2\nsyscall \n```\n### if else statement\n###### C\n```c\n#include\u003cstdio.h\u003e\nint main(){\nint a=5,b=3,c=0;\nif(a==b) c=a+b;\nelse c=a-b;\n\tprintf(\"%d\",c);\n\treturn 0;\n}\n```\n###### MIPS Assembly\n```assembly\nli $t0,5       #a\nli $t1,3       #b\nli $t2,3       #c\nbeq $t0,$t1,if\nj else\nif:add $t2,$t0,$t1\nelse:sub $t2,$t0,$t1\nprint:\nli $v0,1\nmove $a0,$t2\nsyscall \n```\n### nested if\n###### C\n```c\n#include\u003cstdio.h\u003e\nint main(){\nint a=1;\nint b=4;\nint c;\nif(a==1)\n{\n\tc=a;\n\tif(b!=3){\n\t\tc+=b;\n\t}\t\n}\nprintf(\"%d\",c);\n}\n```\n###### MIPS Assembly\n```assembly\nli $t0,1  #a\nli $t1,4  #b\nbeq $t0,1,if\nj print\nif:\n  la $t2,($t0)   #c\n  beq $t1,3,print \n  add $t2,$t2,$t1\nprint:\nli $v0,1\nmove $a0,$t2\nsyscall \n```\n### switch statement\n###### C\n```c\n#include\u003cstdio.h\u003e\nint main(){\nint a;\nint b=0;\nscanf(\"%d\",\u0026a);\nswitch(a){\n\tcase 0:b=-1; break;\n\tcase 1:b=0; break;\n\tdefault :b=1; break;\n}\nprintf(\"%d\",b);\n}\n```\n###### MIPS Assembly\n```assembly\n# a====\u003e$s0\n# b====\u003e$s1\nread_a:li $v0,5\n       syscall \n       la $s0,($v0)\nswitch:\nbeq $s0,0,case0\nbeq $s0,1,case1\nj default\ncase0:li $s1,-1\nj print\ncase1:li $s1,0\nj print\ndefault:li $s1,1\nprint:\nli $v0,1\nmove $a0,$s1\nsyscall \n```\n### Power\n###### C\n```c\n#include\u003cstdio.h\u003e\nint main(){\n\tint x,n;\n\tscanf(\"%d%d\",\u0026x,\u0026n);\n\tint i=0;\n\tint p=1;\n\tfor(i=0;i\u003cn;i++)\n\tp*=x;\n\tprintf(\"%d\",p);\n}\n```\n###### MIPS Assembly\n```assembly\nread_x:li $v0,5\n       syscall \n       la $s0,($v0)\nread_n:li $v0,5\n       syscall \n       la $s1,($v0)\nli $s2,1 #p\nli $t0,0\nloop:\nbeq $t0,3,print\nmult $s2,$s0\nmflo  $s2\naddi $t0,$t0,1\nj loop\nprint:\nli $v0,1\nmove $a0,$s2\nsyscall \n```\n### Factorial\n###### C\n```c\n#include\u003cstdio.h\u003e\nint main(){\n\tint x;\n\tscanf(\"%d\",\u0026x);\n\tint i;\n\tint f=1;\n\tfor(i=x;i\u003e1;i--)\n\tf*=i;\n\tprintf(\"%d\",f);\n}\n```\n###### MIPS Assembly\n```assembly\nli $v0,5\nsyscall \nla $s0,($v0)\nli $s2,1\nla $t0,($s0)\nloop:\nbeq $t0,1,print\nmult $s2,$t0\nmflo  $s2\nsubi $t0,$t0,1\nj loop\nprint :\nli $v0,1\nla $a0,($s2)\nsyscall\n```\n### the parity of a number using the rest of the division\n###### C\n```c\n#include\u003cstdio.h\u003e\nint main(){\n  int number;\n  read:scanf(\"%d\",\u0026number);\n  if(number%2==0){\n    printf(\"even\\n\");\n    goto read;\n    }\n  else printf(\"odd\\n\");\n  goto read;\n}\n```\n###### MIPS Assembly\n```assembly\n.data \n even : .asciiz \"even\\n\"\n odd : .asciiz \"odd\\n\"\n .text\nread:li $v0,5\nsyscall\nmove $s0,$v0\nli $t0,2\ndiv $s0,$t0\nmfhi $t1\nbeq $t1,0,iseven\nli $v0,4\nla $a0,odd\nsyscall \nj read\niseven: li $v0,4\n      la $a0,even\n      syscall\nj read\n```\n### the parity of a number using bitwise and operator \n###### C\n```c\n#include\u003cstdio.h\u003e\nint main(){\n  int number,c;\n  read:scanf(\"%d\",\u0026number);\n  if((number \u0026 1)==0){\n    printf(\"even\\n\");\n    goto read;\n    }\n  else printf(\"odd\\n\");\n  goto read;\n}\n```\n###### MIPS Assembly\n```assembly\n.data \n even : .asciiz \"even\\n\"\n odd : .asciiz \"odd\\n\"\n .text\nread:li $v0,5\nsyscall\nmove $s0,$v0\nli $t0,2\nandi $t0,$s0,1\nbeq $t0,0,iseven\nli $v0,4\nla $a0,odd\nsyscall \nj read\niseven: li $v0,4\n      la $a0,even\n      syscall\nj read\n```\n### swap 2 numbers using auxiliary variable\n###### C\n```c\n#include\u003cstdio.h\u003e\nint main(){\n  int a=3,b=7,c;\n  c=a;\n  a=b;\n  b=c;\n  print(\"%d\\n%d\",a,b);\n  return 0;\n}\n```\n###### MIPS Assembly\n```assembly\nli $s0,3   #a\nli $s1,7   #b\nla $t0,($s0)\nla $s0,($s1)\nla $s1,($t0)\nli $v0,1\nla $a0,($s0)\nsyscall \nli $v0,1\nla $a0,($s1)\nsyscall\n```\n### swap 2 numbers using addition and subtraction \n###### C\n```c\n#include\u003cstdio.h\u003e\nint main(){\n  int a=3,b=7;\n  a=a+b;\n  b=a-b;\n  a=a-b;\n  print(\"%d\\n%d\",a,b);\n  return 0;\n}\n```\n###### MIPS Assembly\n```assembly\nli $s0,3\nli $s1,7\nadd $s0,$s0,$s1\nsub $s1,$s0,$s1\nsub $s0,$s0,$s1\nli $v0,1\nla $a0,($s0)\nsyscall \nli $v0,1\nla $a0,($s1)\nsyscall \n```\n### swap 2 numbers using bitwise xor operator\n###### C\n```c\n#include\u003cstdio.h\u003e\nint main(){\n  int a=3,b=7;\n  a=a^b;\n  b=a^b;\n  a=a^b;\n  printf(\"%d\\n%d\",a,b);\n  return 0;\n}\n```\n###### MIPS Assembly\n```assembly\nli $s0,3\nli $s1,7\nxor $s0,$s0,$s1\nxor $s1,$s0,$s1\nxor $s0,$s0,$s1\nli $v0,1\nla $a0,($s0)\nsyscall\nli $v0,1\nla $a0,($s1)\nsyscall   \n```\n### Read and Print elements of an array\n###### C\n```c\n#include\u003cstdio.h\u003e\nint main(){\n\tint arr[5];\n\tint i=0;\n\t//read\n\tfor(i=0;i\u003c5;i++){\n\t    scanf(\"%d\",\u0026arr[i]);\n\t}\n\t//print\n\tfor(i=0;i\u003c5;i++){\n\t    printf(\"%d\",arr[i]);\n\t    printf(\" \");\n\t}\n}\n```\n###### MIPS Assembly\n```assembly\n.data\n arr: .space 20    #(20=5*4(Size of word))\n space: .asciiz \" \"\n.text \n li $t0,0\n read:\n li $v0,5\n syscall \n sw $v0,arr($t0)\n addi $t0,$t0,4\n blt $t0,20,read\n \n la $s0,arr\n li $t0,0\n print:\n li $v0,1\n lw $a0,($s0)\n syscall \n addi $t0,$t0,4\n addi $s0,$s0,4\n li $v0,4\n la $a0,space\n syscall \n blt $t0,20,print\n```\n\n### Array's elements somme\n###### C\n```c\n#include\u003cstdio.h\u003e\nint main(){\n\tint tab[10]={0,1,2,3,4,5,6,7,8,9};\n\tint s=0;\n\tint i=0;\n\twhile(i\u003c10){\n\t\ts+=*(tab+i); // s=s+tab[i]\n\t\ti++;\n\t}\n\tprintf(\"%d\",s);\n\treturn 0;\n}\n```\n###### MIPS Assembly\n```assembly\n.data \ntab: .byte 0,1,2,3,4,5,6,7,8,9\n.text \nmain: \nla $t0, tab \nli $a0,0 #compteur\nli $s0,0 #somme\nloop:\nlb $t1,($t0)\nadd $s0,$s0,$t1\naddi $t0,$t0,1\naddi $a0,$a0,1\nbne $a0,10,loop\n```\n\n### Print a random integer belongs to the interval 0,10\n###### C            \n```c     \n#include\u003cstdio.h\u003e\n#include\u003ctime.h\u003e\n#include\u003cstdlib.h\u003e\nint main(){  \n  srand(time(NULL));\n  int r = rand()%10;\n  printf(\"%i\", r);\n  return 0;\n}   \n```  \n###### MIPS Assembly\n\nIn order to get a random number we have to assign the register $v0 with the value 42.\nThe value stored in $a1 represent the upper value of the generated random number.\n\n```assembly\n.text\n#get random int belongs to the interval 0,10\nli $v0,42\nli $a1,10\nsyscall \nprint:\n li $v0,1\n syscall \n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzakarialaoui10%2FHIGH-TO-LOW","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzakarialaoui10%2FHIGH-TO-LOW","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzakarialaoui10%2FHIGH-TO-LOW/lists"}