mirror of
				https://github.com/simon987/Much-Assembly-Required.git
				synced 2025-10-31 08:16:52 +00:00 
			
		
		
		
	Annoted examples + fixed val into *val
				
			
							parent
							
								
									f96f2017bf
								
							
						
					
					
						commit
						8832bdbc6e
					
				| @ -20,54 +20,58 @@ Note that the Hologram Projector will clear itself at the end of the tick, it is | ||||
| ### Usage examples | ||||
| ```assembly | ||||
| ; Displaying the hexadecimal 0x000A | ||||
| HWID_HOLO    EQU 0x9 | ||||
| HWID_HOLO         EQU 0x9                 ;; setup constants | ||||
| HOLO_DISPLAY_HEX  EQU 1 | ||||
| .data | ||||
|     DISPLAYED_HEX EQU 0X000A | ||||
|     DISPLAYED_HEX EQU 0X000A              ;; create a word in memory called DISPLAYED_HEX and set its value to | ||||
|                                           ;; 0x000A | ||||
| .text | ||||
|     MOV A, HOLO_DISPLAY_HEX | ||||
|     MOV B, DISPLAYED_HEX | ||||
|     HWI HWID_HOLO | ||||
|     BRK | ||||
|     MOV A, HOLO_DISPLAY_HEX               ;; MOV the constant HOLO_DISPLAY_HEX into register A | ||||
|     MOV B, [DISPLAYED_HEX]                ;; MOV the value inside the memory spot DISPLAYED_HEX into register B | ||||
|     HWI HWID_HOLO                         ;; create an hardware interrupt which will do the magic of displaying | ||||
|     BRK                                   ;; halt execution for the rest of this tick | ||||
| ``` | ||||
| ```assembly | ||||
| ; Displaying the string "hello!" | ||||
| HWID_HOLO    EQU 0x9 | ||||
| HWID_HOLO            EQU 0x9             ;; setup constants | ||||
| HOLO_DISPLAY_STRING  EQU 2 | ||||
| .data | ||||
|     DISPLAYED_STRING: DW "hello!", 0 | ||||
|     DISPLAYED_STRING: DW "hello!", 0     ;; create a string in memory and point to it by DISPLAYED_STRING | ||||
|                                          ;; the ',0' is a null word. This represents the end of the string | ||||
| .text | ||||
|     MOV A, HOLO_DISPLAY_STRING | ||||
|     MOV X, DISPLAYED_STRING | ||||
|     HWI HWID_HOLO | ||||
|     BRK | ||||
|     MOV A, HOLO_DISPLAY_STRING           ;; MOV the constant HOLO_DISPLAY_STRING into register A | ||||
|     MOV X, DISPLAYED_STRING              ;; MOV the pointer of DISPLAYED_STRING into register B | ||||
|     HWI HWID_HOLO                        ;; do the magic | ||||
|     BRK                                  ;; halt execution until the next tick | ||||
| ``` | ||||
| ```assembly | ||||
| ; Displaying the decimal 42 | ||||
| HWID_HOLO    EQU 0x9 | ||||
| HWID_HOLO         EQU 0x9                ;; setup constants | ||||
| HOLO_DISPLAY_DEC  EQU 3 | ||||
| .data | ||||
|     DISPLAYED_DECIMAL EQU 42 | ||||
|     DISPLAYED_DECIMAL EQU 42             ;; create a word in memory called DISPLAYED_DECIMAL and set its value | ||||
|                                          ;; to 42 | ||||
| .text | ||||
|     MOV A, HOLO_DISPLAY_DEC | ||||
|     MOV B, DISPLAYED_DECIMAL | ||||
|     HWI HWID_HOLO | ||||
|     BRK | ||||
|     MOV A, HOLO_DISPLAY_DEC              ;; MOV the constant HOLO_DISPLAY_DEC into register A | ||||
|     MOV B, DISPLAYED_DECIMAL             ;; MOV the value inside the memory spot DISPLAYED_HEX into register B | ||||
|     HWI HWID_HOLO                        ;; more magic | ||||
|     BRK                                  ;; halt execution until next tick | ||||
| ``` | ||||
| ```assembly | ||||
| ; Displaying the decimal 42 in red | ||||
| HWID_HOLO    EQU 0x9 | ||||
| HWID_HOLO           EQU 0x9              ;; setup constants | ||||
| HOLO_DISPLAY_DEC    EQU 3 | ||||
| HOLO_DISPLAY_COLOR  EQU 4 | ||||
| .data | ||||
|     DISPLAYED_DECIMAL EQU 42 | ||||
|     DISPLAYED_DECIMAL EQU 42             ;; create a word in memory called DISPLAYED_DECIMAL and set its value | ||||
|                                          ;; to 42 | ||||
| .text | ||||
|     MOV A, HOLO_DISPLAY_COLOR | ||||
|     MOV B, 0x00FF | ||||
|     MOV C, 0x0000 | ||||
|     HWI HWID_HOLO | ||||
|     MOV A, HOLO_DISPLAY_DEC | ||||
|     MOV B, DISPLAYED_DECIMAL | ||||
|     HWI HWID_HOLO | ||||
|     BRK | ||||
|     MOV A, HOLO_DISPLAY_COLOR            ;; MOV the constant HOLO_DISPLAY_COLOR into register A | ||||
|     MOV B, 0x00FF                        ;; MOV the (immediate) value 0x00FF into register B | ||||
|     MOV C, 0x0000                        ;; clear register C | ||||
|     HWI HWID_HOLO                        ;; this interrupt will set the color to: #0000FF [C:B] also know as red | ||||
|     MOV A, HOLO_DISPLAY_DEC              ;; MOV the constant HOLO_DISPLAY_DEC into register A | ||||
|     MOV B, [DISPLAYED_DECIMAL]           ;; MOV the value that DISPLAYED_DECIMAL is pointing at into register B | ||||
|     HWI HWID_HOLO                        ;; ... | ||||
|     BRK                                  ;; halt execution until next tick | ||||
| ``` | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user