The set of files in this directory are provided to show how the DVASM RISC-V HEAPSORT macro is used. Also some corresponding C functions are provided for performance comparison. File dvasmsortlong.asm sorts a vector of 64 bit signed integers. File dvasmsortstring.asm sorts a vector of 64 bits pointers to null terminated strings. The pointers are sorted so that they point to the strings in ascending order. File sortlong.c and sortstring.c are the corresponding main functions that generate the data to be sorted and than sort the data by calling the entry points in files dvasmsortlong.asm and dvasmsortstring.asm. Both files sortlong.c and sortstring.c have several #defines that control the ammount of data generated, how many times to iterate the sort, and if to print the results. One #define in each file allows to sort the data using correspong C sort functions provided for performance comparison. The C sort files are linuxsort.c, optsortlong.c optsortstring.c. Sort file linuxsort.c is the original linux heap sort function and is used both to sort 64 bits integers and string pointers. Sort fIles optsortlong.c and optsortstring.c are optimized version of linuxsort.c, where function calls to internal functions have been changed to macros to avoid function call overhead. Sort file optsortlong is used to sort 64 bit integers, and optsortstring.c is used to sort string pointers. To assemble the two assembler files issue the following command: java -jar dvasm-jar_file_name.jar *.asm To compile the sortlong.c main function file issue the following command: gcc -03 sortlong.c linuxsort.c optsortlong.c dvasmsortlong.o -o sortlong Every time you change any of the #defines controlling the behavior of sortlong.c the above command must be issued again. To compile the sortstring.c main function file issue the following command: gcc -03 sortstring.c linuxsort.c optsortstring.c dvasmsortstring.o -o sortstring Every time you change any of the #defines controlling the behavior of sortstring.c the above command must be issued again.