Μemory management at programming levels (high-> mid -> low (Assembly))
Memory management and data structures
- Hexadeced representation.
- Ordering elements in memory using pointers and arrays.
- Structs declaration
- 2 structs with different variable content
- Dynamic memory allocation
- Μemory use map
Structure management in memory using linked data list operations.
Menu for the options
- Create List
- Insert Element
- (id, value)
- Delete First
- Print
- Address/Value element
- List count
- List address
- Address element field
- List size (bytes)
- Element size (bytes)
- Create List
- Insert Element
- (id, value)
- Delete First
- Print element value
Deepening the understanding of memory function in Clang/understanding of Assembly
New operation
- Print function address
- Calculate list size to bytes from addresses that occupy items
Conversion of all the variables used in c Menu for the options using standards (reference registers, etc)
- Create List
- Insert Element
- (id, value)
- Delete First
- Print
- Address/Value element
- List count
- List address
- Address element field
- List size (bytes)
- Element size (bytes)
Menu options (no functionality)
Deepening the understanding of Clang/Assembly
Modification from previous implementation
- Create finite list
- Delete Last
- Print element with minimum value
- 100 nodes on list (static array)
- Correctness of assembly contracts (register contracts)
- Menu functionality (#3)
- Jal commands for call functions
Modification from previous implementation
- Ascending sort using recursive Merge sort 1
- Stack emerged
- Convert values from type int -> short
Management of input/output devices, using the memory display of the units I/O
Checking peripheral devices if they are ready to accept/export data without syscall (write_ch,read_ch).
Functions | |
---|---|
write_ch | Reads register Transmission control (TC) / Check device (crosscheck instruction and LSB) |
read_ch | Waiting for new registration |
print_str | Candidate for printing char per char |
Menu |
---|
Choice #1 |
Choice #2 |
Exit |
Menu options for keyboard using interrupts
* cflag, cdata for handler
Choice 1 for 1
Choice 2 for 2
Exit for space.
Message appears
- Instal cygwin compiler for your operation system
https://www.cygwin.com/install.html
- Create folder Cygwin
- Open installer
- Install from internet
- Select your path folder
- Select
+
and install compiler and debugger - Find
gcc-core, gcc-g++, gdb, make
- Configure
PATH
variable
- Go to System and Security in Control Panel
- Advanced System Settings
- Environmental Variables
- Add to path variable the path
cygwin-directory\bin
of your cygwin folder
- Install Apache NetBeans (or any other C IDE)
https://netbeans.apache.org/download/index.html
- Instal NetBeans plugins
- Import .c files to your workspace or Create a new C project
- Run your .c source files
- Install Spim from website
http://spimsimulator.sourceforge.net/
For (#6), necessery modifications on file
- Exception file
lui $k1 0xFFFF
lw $k0 4($k1)
la $t1, cdata
sw $k0,0($t1)
la $t1, cflag
addi $k0, $zero,1
sw $k0,0($t1)
Projects were created for the requirements of the lesson Digital Computers
Footnotes
-
https://en.wikipedia.org/wiki/Merge_sort#:~:text=In%20computer%20science%2C%20merge%20sort%20%28also%20commonly%20spelled,was%20invented%20by%20John%20von%20Neumann%20in%201945. ↩
-
MIPS simulator recognizes programs written in text editors ↩
-
Reinitialize and load every time you run the program ↩
-
Extension .asm to run files on SPIM ↩