We are currently in the process of converting the website to the new design. Some pages, like this one, are still broken. We appreciate your patience.
RISCY BUSINESS»Episode Guide
Hello World in RISC-V ASM (2/2)
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:01Welcome to the stream
🗩
0:01Welcome to the stream
🗩
0:01Welcome to the stream
🗩
0:33Review additions to the Useful Links: unistd.h1 and RISC-V: Linux Syscall Interface2
📖
0:33Review additions to the Useful Links: unistd.h1 and RISC-V: Linux Syscall Interface2
📖
0:33Review additions to the Useful Links: unistd.h1 and RISC-V: Linux Syscall Interface2
📖
2:48polytomous Unfortunately don't have time to watch, but I just came by to say that your title is great
🗪
2:48polytomous Unfortunately don't have time to watch, but I just came by to say that your title is great
🗪
2:48polytomous Unfortunately don't have time to watch, but I just came by to say that your title is great
🗪
3:02Continue reading through the RISC-V Linux Syscall Interface3
📖
3:02Continue reading through the RISC-V Linux Syscall Interface3
📖
3:02Continue reading through the RISC-V Linux Syscall Interface3
📖
4:16polytomous You best stream soon so I can actually watch you work on this project4
🗪
4:16polytomous You best stream soon so I can actually watch you work on this project4
🗪
4:16polytomous You best stream soon so I can actually watch you work on this project4
🗪
4:55Finish reading through the RISC-V Linux Syscall Interface5
📖
4:55Finish reading through the RISC-V Linux Syscall Interface5
📖
4:55Finish reading through the RISC-V Linux Syscall Interface5
📖
5:34Return to hello.S assembly and include the li and mv instructions in loop 1
5:34Return to hello.S assembly and include the li and mv instructions in loop 1
5:34Return to hello.S assembly and include the li and mv instructions in loop 1
6:45JumpOnMeh Hi, are you coding on a Raspberry Pi?
🗪
6:45JumpOnMeh Hi, are you coding on a Raspberry Pi?
🗪
6:45JumpOnMeh Hi, are you coding on a Raspberry Pi?
🗪
7:32Lower the exit call in main() from hula to assembly
7:32Lower the exit call in main() from hula to assembly
7:32Lower the exit call in main() from hula to assembly
8:58JumpOnMeh If you don't mind me asking, what is RISC-V?6
🗪
8:58JumpOnMeh If you don't mind me asking, what is RISC-V?6
🗪
8:58JumpOnMeh If you don't mind me asking, what is RISC-V?6
🗪
11:02Set up to lower the return call in main() from hula to assembly
🗩
11:02Set up to lower the return call in main() from hula to assembly
🗩
11:02Set up to lower the return call in main() from hula to assembly
🗩
11:13JumpOnMeh I'm taking a degree in comp sci right now. Kinda interested in learning new languages
🗪
11:13JumpOnMeh I'm taking a degree in comp sci right now. Kinda interested in learning new languages
🗪
11:13JumpOnMeh I'm taking a degree in comp sci right now. Kinda interested in learning new languages
🗪
11:40Plug bitwise7
🗩
11:40Plug bitwise7
🗩
11:40Plug bitwise7
🗩
13:14Lower the return call in main() from hula to assembly
13:14Lower the return call in main() from hula to assembly
13:14Lower the return call in main() from hula to assembly
14:27Compare our newly written RISC-V assembly with hello.S in the repo,8 and consult the RISC-V ELF psABI specification9 for documentation on the stack frame
📖
14:27Compare our newly written RISC-V assembly with hello.S in the repo,8 and consult the RISC-V ELF psABI specification9 for documentation on the stack frame
📖
14:27Compare our newly written RISC-V assembly with hello.S in the repo,8 and consult the RISC-V ELF psABI specification9 for documentation on the stack frame
📖
17:54Push the return address of main onto the stack
17:54Push the return address of main onto the stack
17:54Push the return address of main onto the stack
21:14A few words on generating the code for multiple returns, wondering what Per has to say about it
🗩
21:14A few words on generating the code for multiple returns, wondering what Per has to say about it
🗩
21:14A few words on generating the code for multiple returns, wondering what Per has to say about it
🗩
22:12Enable main to correctly return from all branches, and offset the stack pointer10
22:12Enable main to correctly return from all branches, and offset the stack pointer10
22:12Enable main to correctly return from all branches, and offset the stack pointer10
30:32A few words on using the temporary "a" registers, and the possible performance ramifications of being tight with register usage
🗩
30:32A few words on using the temporary "a" registers, and the possible performance ramifications of being tight with register usage
🗩
30:32A few words on using the temporary "a" registers, and the possible performance ramifications of being tight with register usage
🗩
32:31Enable main to reuse the a1 register
32:31Enable main to reuse the a1 register
32:31Enable main to reuse the a1 register
34:28Fix main to correctly break out of the print loop
34:28Fix main to correctly break out of the print loop
34:28Fix main to correctly break out of the print loop
36:48Read through hello.S to check it all looks correct
📖
36:48Read through hello.S to check it all looks correct
📖
36:48Read through hello.S to check it all looks correct
📖
40:08Fix _start to correctly pop the loaded word off the stack
40:08Fix _start to correctly pop the loaded word off the stack
40:08Fix _start to correctly pop the loaded word off the stack
40:31Finish reading through hello.S and consider it all good
📖
40:31Finish reading through hello.S and consider it all good
📖
40:31Finish reading through hello.S and consider it all good
📖
41:15Assemble our program to see assembly errors
41:15Assemble our program to see assembly errors
41:15Assemble our program to see assembly errors
42:13Remove comment and fix assembly errors
42:13Remove comment and fix assembly errors
42:13Remove comment and fix assembly errors
42:42Assemble our program to see errors on bez and beq
42:42Assemble our program to see errors on bez and beq
42:42Assemble our program to see errors on bez and beq
44:27Grab the RISC-V Reader11
🗹
44:27Grab the RISC-V Reader11
🗹
44:27Grab the RISC-V Reader11
🗹
45:24Rename bez to beqz, and fix our beq calls, in conjunction with the RISC-V Reader12
45:24Rename bez to beqz, and fix our beq calls, in conjunction with the RISC-V Reader12
45:24Rename bez to beqz, and fix our beq calls, in conjunction with the RISC-V Reader12
46:48Consult the RISC-V Reader13 for information on loading into the frame pointer
📖
46:48Consult the RISC-V Reader13 for information on loading into the frame pointer
📖
46:48Consult the RISC-V Reader13 for information on loading into the frame pointer
📖
51:12Try to make _start load 0 into s0 rather than fp
51:12Try to make _start load 0 into s0 rather than fp
51:12Try to make _start load 0 into s0 rather than fp
51:55Assemble it to see that this fixed that error
51:55Assemble it to see that this fixed that error
51:55Assemble it to see that this fixed that error
52:44Stick .section in front of .rodata as per the RISC-V Reader14
52:44Stick .section in front of .rodata as per the RISC-V Reader14
52:44Stick .section in front of .rodata as per the RISC-V Reader14
53:08Assemble it successfully
53:08Assemble it successfully
53:08Assemble it successfully
54:07Link our program with ld
54:07Link our program with ld
54:07Link our program with ld
54:20Run it to see that it works
🏃
54:20Run it to see that it works
🏃
54:20Run it to see that it works
🏃
54:41Inspect our binary
📖
54:41Inspect our binary
📖
54:41Inspect our binary
📖
56:00On writing this program as an example of code that hula should compile to
🗩
56:00On writing this program as an example of code that hula should compile to
🗩
56:00On writing this program as an example of code that hula should compile to
🗩
56:18Streamline the return code loads in main
56:18Streamline the return code loads in main
56:18Streamline the return code loads in main
1:00:37Prevent _start from zeroing out the frame pointer
1:00:37Prevent _start from zeroing out the frame pointer
1:00:37Prevent _start from zeroing out the frame pointer
1:02:23Assemble and link it
1:02:23Assemble and link it
1:02:23Assemble and link it
1:02:36Run it to see that it still works
🏃
1:02:36Run it to see that it still works
🏃
1:02:36Run it to see that it still works
🏃
1:02:45Consider the episode done, with a glimpse into the future booting Fedora directly, hand-writing the machine code for our "Hello, World!" and covering compressed instructions
🗩
1:02:45Consider the episode done, with a glimpse into the future booting Fedora directly, hand-writing the machine code for our "Hello, World!" and covering compressed instructions
🗩
1:02:45Consider the episode done, with a glimpse into the future booting Fedora directly, hand-writing the machine code for our "Hello, World!" and covering compressed instructions
🗩
1:07:32Thoughts on avoiding security vulnerabilities by owning the entire chain of production
🗩
1:07:32Thoughts on avoiding security vulnerabilities by owning the entire chain of production
🗩
1:07:32Thoughts on avoiding security vulnerabilities by owning the entire chain of production
🗩
1:12:57Further thoughts on the elegance of FORTH and its suitability for bootstrapping
🗩
1:12:57Further thoughts on the elegance of FORTH and its suitability for bootstrapping
🗩
1:12:57Further thoughts on the elegance of FORTH and its suitability for bootstrapping
🗩
1:15:50Glimpse into the future designing a custom case, streaming from our RISC-V system and building a Linux distribution for it
🗩
1:15:50Glimpse into the future designing a custom case, streaming from our RISC-V system and building a Linux distribution for it
🗩
1:15:50Glimpse into the future designing a custom case, streaming from our RISC-V system and building a Linux distribution for it
🗩
1:17:16End this episode here
🗩
1:17:16End this episode here
🗩
1:17:16End this episode here
🗩