Created
October 25, 2021 09:06
-
-
Save Rastrian/60b1945606ba2d0d55e5f0390338e4b1 to your computer and use it in GitHub Desktop.
TODO: Change MOV, CMP and JNG unused by Ahmes simulator.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ORG 0 | |
init: | |
LDA num_zero | |
STA result_more_sb ; MORE SB DIGIT (MMC) | |
STA result_less_sb ;LESS SB DIGIT (MMC) | |
STA mmc_more_sb ;MMC - TEMP MORE SB DIGIT | |
STA mmc_less_sb ;MMC - TEMP LESS SB DIGIT | |
ORG 128 | |
declare: | |
op_A: DB 112 ; ADRESS>128 | |
op_B: DB 0 ; ADDRESS>129 | |
result_more_sb: DW ; ADDRESS>130 | |
result_less_sb: DW ; ADDRESS>131 | |
num_zero: DB 0 ; ADDRESS>132 | |
mmc_more_sb: DW ; ADDRESS>133 | |
mmc_less_sb: DW ; ADDRESS>134 | |
opcode: DB ; ADDRESS>135 | |
num_one: DB 1 ; Invalid Opcode | |
ORG 18 | |
call_ops: | |
LDA opcode; | |
SUB num_one; | |
JZ A_equals_zero | |
ORG 57 | |
A_equals_zero: | |
LDA op_A; | |
CMP op_A, [num_zero]; | |
JZ B_equals_zero; | |
MOV result_more_sb, [num_zero]; | |
MOV result_less_sb, [num_zero]; | |
JMP 255; | |
ORG 71 | |
B_equals_zero: | |
LDA op_B; | |
CMP op_B, [num_zero]; | |
JZ A_more_than_B; | |
MOV result_more_sb, [num_zero]; | |
MOV result_less_sb, [num_zero]; | |
JMP 254; | |
ORG 81 | |
A_more_than_B: | |
CMP op_A, [op_B]; | |
JNG else_conditional; | |
MOV mmc_more_sb, [op_A]; | |
MOV mmc_less_sb, [op_B]; | |
JMP continue_function; | |
ORG 91 | |
else_conditional: | |
MOV mmc_more_sb, [op_B]; | |
MOV mmc_less_sb, [op_A]; | |
JMP continue_function; | |
ORG 116 | |
continue_function: | |
MOV result_more_sb, [mmc_more_sb]; | |
MOV result_less_sb, [mmc_less_sb]; | |
JMP end | |
ORG 251 | |
end: | |
HLT |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment