.data char: .word 0x00000041 # Aqui vai o caracter ascii a ser impresso. 41 é A. min: .word 0x00000021 # Abaixo disso, nenhum caracter será impresso (tudo 0) max: .word 0x0000007F # Acima disso, a tela fica preta (todos os caracteres 1) # Caracteres para a tabela ascii ini: .word 0x00000021 # O primeiro caracter da tabela ascii incr: .word 0x00000001 # Vou utilizar essa word para incremendar o contador # Não consegui descobrir outra forma que não seja declarar os dados aqui excla1: .word 0x08080808 excla2: .word 0x00000800 aspas1: .word 0x24242400 aspas2: .word 0x00000000 velha1: .word 0x24247E24 velha2: .word 0x7E242400 cifrao1:.word 0x081E281C cifrao2:.word 0x0A3C0800 porc1: .word 0x00626408 porc2: .word 0x10264600 ecom1: .word 0x30484830 ecom2: .word 0x4A443A00 aspa1: .word 0x04081000 aspa2: .word 0x00000000 par11: .word 0x04081010 par12: .word 0x10080400 par21: .word 0x20100808 par22: .word 0x08081020 star1: .word 0x082A1C3E star2: .word 0x1C2A0800 mais1: .word 0x08080808 mais2: .word 0x00000800 virg1: .word 0x00000000 virg2: .word 0x00080810 menos1: .word 0x0000007E menos2: .word 0x00000000 ponto1: .word 0x00000000 ponto2: .word 0x00181800 divis1: .word 0x00020408 divis2: .word 0x10204000 zero1: .word 0x3C42465A zero2: .word 0x62423C00 um1: .word 0x08182808 um2: .word 0x08083E00 dois1: .word 0x3C42020C dois2: .word 0x30407E00 tres1: .word 0x3C42021C tres2: .word 0x02423C00 quatro1:.word 0x040C1424 quatro2:.word 0x7E040400 cinco1: .word 0x7E407804 cinco2: .word 0x02443800 seis1: .word 0x1C20407C seis2: .word 0x42423C00 sete1: .word 0x7E420408 sete2: .word 0x10101000 oito1: .word 0x3C42423C oito2: .word 0x42423C00 nove1: .word 0x3C42423E nove2: .word 0x02043800 doisp1: .word 0x00000800 doisp2: .word 0x00080000 pv1: .word 0x00000800 pv2: .word 0x00080810 menor1: .word 0x04081020 menor2: .word 0x10080400 igual1: .word 0x00007E00 igual2: .word 0x7E000000 maior1: .word 0x20100804 maior2: .word 0x08102000 inter1: .word 0x3C42020C inter2: .word 0x10001000 arroba1:.word 0x1C224A56 arroba2:.word 0x4C201E00 A1: .word 0x1824427E A2: .word 0x42420600 B1: .word 0x7C22223C B2: .word 0x22227C00 C1: .word 0x1C224040 C2: .word 0x40221C00 D1: .word 0x78242222 D2: .word 0x22247800 E1: .word 0x7E404078 E2: .word 0x40407E00 F1: .word 0x7E404078 F2: .word 0x40404000 G1: .word 0x1C22404E G2: .word 0x42221C00 H1: .word 0x4242427E H2: .word 0x42424200 I1: .word 0x1C080808 I2: .word 0x08081C00 JOTA1: .word 0x0E040404 JOTA2: .word 0x04443800 K1: .word 0x42444870 K2: .word 0x48444200 L1: .word 0x40404040 L2: .word 0x40407E00 M1: .word 0x42665A5A M2: .word 0x42424200 N1: .word 0x4262524A N2: .word 0x46424200 O1: .word 0x18244242 O2: .word 0x42241800 P1: .word 0x7C42427C P2: .word 0x42424200 Q1: .word 0x18244242 Q2: .word 0x4A242A00 R1: .word 0x7C42427C R2: .word 0x48444200 S1: .word 0x3C42403C S2: .word 0x02423C00 T1: .word 0x3E080808 T2: .word 0x08080800 U1: .word 0x42424242 U2: .word 0x42423C00 V1: .word 0x42424224 V2: .word 0x24181800 W1: .word 0x4242425A W2: .word 0x5A664200 X1: .word 0x42422418 X2: .word 0x24424200 Y1: .word 0x2222221C Y2: .word 0x08080800 Z1: .word 0x7E020418 Z2: .word 0x20407E00 colc11: .word 0x3C202020 colc12: .word 0x20203C00 barra1: .word 0x00402010 barra2: .word 0x08040200 colc21: .word 0x3C040404 colc22: .word 0x04043C00 circ1: .word 0x08142200 circ2: .word 0x00000000 under1: .word 0x00000000 under2: .word 0x000000FF apost1: .word 0x20100800 apost2: .word 0x00000000 a1: .word 0x00003804 a2: .word 0x3C443A00 be1: .word 0x40405C62 be2: .word 0x42625C00 c1: .word 0x00003C42 c2: .word 0x40423C00 d1: .word 0x02023A46 d2: .word 0x42463A00 e1: .word 0x00003C42 e2: .word 0x7F403C00 f1: .word 0x0C12107D f2: .word 0x10101000 g1: .word 0x00003A46 g2: .word 0x463A023C h1: .word 0x40405C62 h2: .word 0x42424200 i1: .word 0x08001808 i2: .word 0x08081C00 jota1: .word 0x04000C04 jota2: .word 0x04044438 k1: .word 0x40404448 k2: .word 0x50684400 l1: .word 0x18080808 l2: .word 0x08081C00 m1: .word 0x00007649 m2: .word 0x49494900 n1: .word 0x00005C62 n2: .word 0x42424200 o1: .word 0x00003C42 o2: .word 0x42423C00 p1: .word 0x00005C62 p2: .word 0x625C4040 q1: .word 0x00003A46 q2: .word 0x463A0202 r1: .word 0x00005C62 r2: .word 0x40404000 s1: .word 0x00003E40 s2: .word 0x3C027D00 t1: .word 0x10107D10 t2: .word 0x1010120C u1: .word 0x00004242 u2: .word 0x42463A00 v1: .word 0x00424242 v2: .word 0x42241800 w1: .word 0x00004149 w2: .word 0x49493600 x1: .word 0x00004224 x2: .word 0x18244200 y1: .word 0x00004242 y2: .word 0x463A023C z1: .word 0x00007F04 z2: .word 0x18247F00 chav11: .word 0x04080810 chav12: .word 0x08080400 pipe1: .word 0x08080808 pipe2: .word 0x08080808 chav21: .word 0x24101008 chav22: .word 0x10102400 til1: .word 0x00000032 til2: .word 0x4C000000 pr1: .word 0x11111111 # Tudo 1 br1: .word 0x00000000 # Tudo 0 .text .globl print_char print_char: lw $a0, char # A word representando o ascii que vai ser impresso vai em $a0 # Aqui começa a descrição dos caracteres que serão impressos. Uma verdadeira tabela de símbolos lw $t1, max # Armazenamos a maior word representável no VGA slt $t0, $a0, $t1 # Se a word for menor do que o maior valor representável, $t0 vai pra 1 beq $t0, $zero, pr # Se $t0 estiver em 0, significa que a word é maior que o máximo. Imprimos tudo preto. lw $t1, min # Agora $t1 recebe o mínimo slt $t0, $t1, $a0 # Agora se $a0 for menor que o mínimo, imprimimos tudo branco beq $t0, $zero, br # Agora fazemos a substituição dos caracteres lw $t0, ini # Código ascii beq $a0, $t0, excla # Branch para o label de impressão do caracter lw $t1, incr # Armazeno o valor a ser incrementado no registrador $t1 # lw $t0, 0x00000022 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, aspas # Branch para o label de impressão do caracter # lw $t0, 0x00000023 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, velha # Branch para o label de impressão do caracter # lw $t0, 0x00000024 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, cifrao # Branch para o label de impressão do caracter # lw $t0, 0x00000025 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, porc # Branch para o label de impressão do caracter # lw $t0, 0x00000026 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, ecom # Branch para o label de impressão do caracter # lw $t0, 0x00000027 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, aspa # Branch para o label de impressão do caracter # lw $t0, 0x00000028 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, par1 # Branch para o label de impressão do caracter # lw $t0, 0x00000029 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, par2 # Branch para o label de impressão do caracter # lw $t0, 0x0000002A # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, star # Branch para o label de impressão do caracter # lw $t0, 0x0000002B # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, mais # Branch para o label de impressão do caracter # lw $t0, 0x0000002C # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, virg # Branch para o label de impressão do caracter # lw $t0, 0x0000002D # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, menos # Branch para o label de impressão do caracter # lw $t0, 0x0000002E # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, ponto # Branch para o label de impressão do caracter # lw $t0, 0x0000002F # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, divis # Branch para o label de impressão do caracter # lw $t0, 0x00000030 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, zero # Branch para o label de impressão do caracter # lw $t0, 0x00000031 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, um # Branch para o label de impressão do caracter # lw $t0, 0x00000032 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, dois # Branch para o label de impressão do caracter # lw $t0, 0x00000033 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, tres # Branch para o label de impressão do caracter # lw $t0, 0x00000034 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, quatro# Branch para o label de impressão do caracter # lw $t0, 0x00000035 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, cinco # Branch para o label de impressão do caracter # lw $t0, 0x00000036 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, seis # Branch para o label de impressão do caracter # lw $t0, 0x00000037 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, sete # Branch para o label de impressão do caracter # lw $t0, 0x00000038 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, oito # Branch para o label de impressão do caracter # lw $t0, 0x00000039 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, nove # Branch para o label de impressão do caracter # lw $t0, 0x0000003A # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, doisp # Branch para o label de impressão do caracter # lw $t0, 0x0000003B # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, pv # Branch para o label de impressão do caracter # lw $t0, 0x0000003C # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, menor # Branch para o label de impressão do caracter # lw $t0, 0x0000003D # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, igual # Branch para o label de impressão do caracter # lw $t0, 0x0000003E # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, maior # Branch para o label de impressão do caracter # lw $t0, 0x0000003F # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, inter # Branch para o label de impressão do caracter # lw $t0, 0x00000040 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, arroba# Branch para o label de impressão do caracter # lw $t0, 0x00000041 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, A # Branch para o label de impressão do caracter # lw $t0, 0x00000042 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, B # Branch para o label de impressão do caracter # lw $t0, 0x00000043 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, C # Branch para o label de impressão do caracter # lw $t0, 0x00000044 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, D # Branch para o label de impressão do caracter # lw $t0, 0x00000045 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, E # Branch para o label de impressão do caracter # lw $t0, 0x00000046 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, F # Branch para o label de impressão do caracter # lw $t0, 0x00000047 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, G # Branch para o label de impressão do caracter # lw $t0, 0x00000048 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, H # Branch para o label de impressão do caracter # lw $t0, 0x00000049 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, I # Branch para o label de impressão do caracter # lw $t0, 0x0000004A # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, JOTA # Branch para o label de impressão do caracter # lw $t0, 0x0000004B # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, K # Branch para o label de impressão do caracter # lw $t0, 0x0000004C # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, L # Branch para o label de impressão do caracter # lw $t0, 0x0000004D # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, M # Branch para o label de impressão do caracter # lw $t0, 0x0000004E # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, N # Branch para o label de impressão do caracter # lw $t0, 0x0000004F # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, O # Branch para o label de impressão do caracter # lw $t0, 0x00000050 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, P # Branch para o label de impressão do caracter # lw $t0, 0x00000051 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, Q # Branch para o label de impressão do caracter # lw $t0, 0x00000052 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, R # Branch para o label de impressão do caracter # lw $t0, 0x00000053 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, S # Branch para o label de impressão do caracter # lw $t0, 0x00000054 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, T # Branch para o label de impressão do caracter # lw $t0, 0x00000055 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, U # Branch para o label de impressão do caracter # lw $t0, 0x00000056 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, V # Branch para o label de impressão do caracter # lw $t0, 0x00000057 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, W # Branch para o label de impressão do caracter # lw $t0, 0x00000058 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, X # Branch para o label de impressão do caracter # lw $t0, 0x00000059 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, Y # Branch para o label de impressão do caracter # lw $t0, 0x0000005A # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, Z # Branch para o label de impressão do caracter # lw $t0, 0x0000005B # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, colc1 # Branch para o label de impressão do caracter # lw $t0, 0x0000005C # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, barra # Branch para o label de impressão do caracter # lw $t0, 0x0000005D # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, colc2 # Branch para o label de impressão do caracter # lw $t0, 0x0000005E # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, circ # Branch para o label de impressão do caracter # lw $t0, 0x0000005F # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, under # Branch para o label de impressão do caracter # lw $t0, 0x00000060 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, apost # Branch para o label de impressão do caracter # lw $t0, 0x00000061 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, a # Branch para o label de impressão do caracter # lw $t0, 0x00000062 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, be # Branch para o label de impressão do caracter # lw $t0, 0x00000063 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, c # Branch para o label de impressão do caracter # lw $t0, 0x00000064 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, d # Branch para o label de impressão do caracter # lw $t0, 0x00000065 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, e # Branch para o label de impressão do caracter # lw $t0, 0x00000066 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, f # Branch para o label de impressão do caracter # lw $t0, 0x00000067 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, g # Branch para o label de impressão do caracter # lw $t0, 0x00000068 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, h # Branch para o label de impressão do caracter # lw $t0, 0x00000069 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, i # Branch para o label de impressão do caracter # lw $t0, 0x0000006A # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, jota # Branch para o label de impressão do caracter # lw $t0, 0x0000006B # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, k # Branch para o label de impressão do caracter # lw $t0, 0x0000006C # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, l # Branch para o label de impressão do caracter # lw $t0, 0x0000006D # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, m # Branch para o label de impressão do caracter # lw $t0, 0x0000006E # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, n # Branch para o label de impressão do caracter # lw $t0, 0x0000006F # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, o # Branch para o label de impressão do caracter # lw $t0, 0x00000070 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, p # Branch para o label de impressão do caracter # lw $t0, 0x00000071 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, q # Branch para o label de impressão do caracter # lw $t0, 0x00000072 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, r # Branch para o label de impressão do caracter # lw $t0, 0x00000073 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, s # Branch para o label de impressão do caracter # lw $t0, 0x00000074 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, t # Branch para o label de impressão do caracter # lw $t0, 0x00000075 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, u # Branch para o label de impressão do caracter # lw $t0, 0x00000076 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, v # Branch para o label de impressão do caracter # lw $t0, 0x00000077 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, w # Branch para o label de impressão do caracter # lw $t0, 0x00000078 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, x # Branch para o label de impressão do caracter # lw $t0, 0x00000079 # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, y # Branch para o label de impressão do caracter # lw $t0, 0x0000007A # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, z # Branch para o label de impressão do caracter # lw $t0, 0x0000007B # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, chav1 # Branch para o label de impressão do caracter # lw $t0, 0x0000007C # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, pipe # Branch para o label de impressão do caracter # lw $t0, 0x0000007D # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, chav2 # Branch para o label de impressão do caracter # lw $t0, 0x0000007E # Código ascii add $t0, $t0, $t1 # Próximo da fila beq $a0, $t0, til # Branch para o label de impressão do caracter excla: # Agora é dividir os bits: os primeiros 32 em $a1 e o restantes em $a2 lw $a1, excla1 lw $a2, excla2 j print # Depois vamos para a impressão aspas: lw $a1, aspas1 lw $a2, aspas2 j print # Depois vamos para a impressão velha: lw $a1, velha1 lw $a2, velha2 j print # Depois vamos para a impressão cifrao: lw $a1, cifrao1 lw $a2, cifrao2 j print # Depois vamos para a impressão porc: lw $a1, porc1 lw $a2, porc2 j print # Depois vamos para a impressão ecom: lw $a1, ecom1 lw $a2, ecom2 j print # Depois vamos para a impressão aspa: lw $a1, aspa1 lw $a2, aspa2 j print # Depois vamos para a impressão par1: lw $a1, par11 lw $a2, par12 j print # Depois vamos para a impressão par2: lw $a1, par21 lw $a2, par22 j print # Depois vamos para a impressão star: lw $a1, star1 lw $a2, star2 j print # Depois vamos para a impressão mais: lw $a1, mais1 lw $a2, mais2 j print # Depois vamos para a impressão virg: lw $a1, virg1 lw $a2, virg2 j print # Depois vamos para a impressão menos: lw $a1, menos1 lw $a2, menos2 j print # Depois vamos para a impressão ponto: lw $a1, ponto1 lw $a2, ponto2 j print # Depois vamos para a impressão divis: lw $a1, divis1 lw $a2, divis2 j print # Depois vamos para a impressão zero: lw $a1, zero1 lw $a2, zero2 j print # Depois vamos para a impressão um: lw $a1, um1 lw $a2, um2 j print # Depois vamos para a impressão dois: lw $a1, dois1 lw $a2, dois2 j print # Depois vamos para a impressão tres: lw $a1, tres1 lw $a2, tres2 j print # Depois vamos para a impressão quatro: lw $a1, quatro1 lw $a2, quatro2 j print # Depois vamos para a impressão cinco: lw $a1, cinco1 lw $a2, cinco2 j print # Depois vamos para a impressão seis: lw $a1, seis1 lw $a2, seis2 j print # Depois vamos para a impressão sete: lw $a1, sete1 lw $a2, sete2 j print # Depois vamos para a impressão oito: lw $a1, oito1 lw $a2, oito2 j print # Depois vamos para a impressão nove: lw $a1, nove1 lw $a2, nove2 j print # Depois vamos para a impressão doisp: lw $a1, doisp1 lw $a2, doisp2 j print # Depois vamos para a impressão pv: lw $a1, pv1 lw $a2, pv2 j print # Depois vamos para a impressão menor: lw $a1, menor1 lw $a2, menor2 j print # Depois vamos para a impressão igual: lw $a1, igual1 lw $a2, igual2 j print # Depois vamos para a impressão maior: lw $a1, maior1 lw $a2, maior2 j print # Depois vamos para a impressão inter: lw $a1, inter1 lw $a2, inter2 j print # Depois vamos para a impressão arroba: lw $a1, arroba1 lw $a2, arroba2 j print # Depois vamos para a impressão A: lw $a1, A1 lw $a2, A2 j print # Depois vamos para a impressão B: lw $a1, B1 lw $a2, B2 j print # Depois vamos para a impressão C: lw $a1, C1 lw $a2, C2 j print # Depois vamos para a impressão D: lw $a1, D1 lw $a2, D2 j print # Depois vamos para a impressão E: lw $a1, E1 lw $a2, E2 j print # Depois vamos para a impressão F: lw $a1, F1 lw $a2, F2 j print # Depois vamos para a impressão G: lw $a1, G1 lw $a2, G2 j print # Depois vamos para a impressão H: lw $a1, H1 lw $a2, H2 j print # Depois vamos para a impressão I: lw $a1, I1 lw $a2, I2 j print # Depois vamos para a impressão JOTA: lw $a1, JOTA1 lw $a2, JOTA2 j print # Depois vamos para a impressão K: lw $a1, K1 lw $a2, K2 j print # Depois vamos para a impressão L: lw $a1, L1 lw $a2, L2 j print # Depois vamos para a impressão M: lw $a1, M1 lw $a2, M2 j print # Depois vamos para a impressão N: lw $a1, N1 lw $a2, N2 j print # Depois vamos para a impressão O: lw $a1, O1 lw $a2, O2 j print # Depois vamos para a impressão P: lw $a1, P1 lw $a2, P2 j print # Depois vamos para a impressão Q: lw $a1, Q1 lw $a2, Q2 j print # Depois vamos para a impressão R: lw $a1, R1 lw $a2, R2 j print # Depois vamos para a impressão S: lw $a1, S1 lw $a2, S2 j print # Depois vamos para a impressão T: lw $a1, T1 lw $a2, T2 j print # Depois vamos para a impressão U: lw $a1, U1 lw $a2, U2 j print # Depois vamos para a impressão V: lw $a1, V1 lw $a2, V2 j print # Depois vamos para a impressão W: lw $a1, W1 lw $a2, W2 j print # Depois vamos para a impressão4 X: lw $a1, X1 lw $a2, X2 j print # Depois vamos para a impressão Y: lw $a1, Y1 lw $a2, Y2 j print # Depois vamos para a impressão Z: lw $a1, Z1 lw $a2, Z2 j print # Depois vamos para a impressão colc1: lw $a1, colc11 lw $a2, colc12 j print # Depois vamos para a impressão barra: lw $a1, barra1 lw $a2, barra2 j print # Depois vamos para a impressão colc2: lw $a1, colc21 lw $a2, colc22 j print # Depois vamos para a impressão circ: lw $a1, circ1 lw $a2, circ2 j print # Depois vamos para a impressão under: lw $a1, under1 lw $a2, under2 j print # Depois vamos para a impressão apost: lw $a1, apost1 lw $a2, apost2 j print # Depois vamos para a impressão a: lw $a1, a1 lw $a2, a2 j print # Depois vamos para a impressão be: lw $a1, be1 lw $a2, be2 j print # Depois vamos para a impressão c: lw $a1, c1 lw $a2, c2 j print # Depois vamos para a impressão d: lw $a1, d1 lw $a2, d2 j print # Depois vamos para a impressão e: lw $a1, e1 lw $a2, e2 j print # Depois vamos para a impressão f: lw $a1, f1 lw $a2, f2 j print # Depois vamos para a impressão g: lw $a1, g1 lw $a2, g2 j print # Depois vamos para a impressão h: lw $a1, h1 lw $a2, h2 j print # Depois vamos para a impressão i: lw $a1, i1 lw $a2, i2 j print # Depois vamos para a impressão jota: lw $a1, jota1 lw $a2, jota2 j print # Depois vamos para a impressão k: lw $a1, k1 lw $a2, k2 j print # Depois vamos para a impressão l: lw $a1, l1 lw $a2, l2 j print # Depois vamos para a impressão m: lw $a1, m1 lw $a2, m2 j print # Depois vamos para a impressão n: lw $a1, n1 lw $a2, n2 j print # Depois vamos para a impressão o: lw $a1, o1 lw $a2, o2 j print # Depois vamos para a impressão p: lw $a1, p1 lw $a2, p2 j print # Depois vamos para a impressão q: lw $a1, q1 lw $a2, q2 j print # Depois vamos para a impressão r: lw $a1, r1 lw $a2, r2 j print # Depois vamos para a impressão s: lw $a1, s1 lw $a2, s2 j print # Depois vamos para a impressão t: lw $a1, t1 lw $a2, t2 j print # Depois vamos para a impressão u: lw $a1, u1 lw $a2, u2 j print # Depois vamos para a impressão v: lw $a1, v1 lw $a2, v2 j print # Depois vamos para a impressão w: lw $a1, w1 lw $a2, w2 j print # Depois vamos para a impressão x: lw $a1, x1 lw $a2, x2 j print # Depois vamos para a impressão y: lw $a1, y1 lw $a2, y2 j print # Depois vamos para a impressão z: lw $a1, z1 lw $a2, z2 j print # Depois vamos para a impressão chav1: lw $a1, chav11 lw $a2, chav12 j print # Depois vamos para a impressão pipe: lw $a1, pipe1 lw $a2, pipe2 j print # Depois vamos para a impressão chav2: lw $a1, chav21 lw $a2, chav22 j print # Depois vamos para a impressão til: lw $a1, til1 lw $a2, til2 j print # Depois vamos para a impressão pr: lw $a1, pr1 # Tudo 1 lw $a2, pr1 # Tudo 1 j print br: lw $a1, br1 # Tudo 0 lw $a2, br1 # Tudo 0 j print # Se chegamos até aqui, hora de imprimir de acordo com a tabela print: la $t0, 0x00001001 # A impressão do caracter começa a partir do endereço 4097. Ponho em $t0. sw $a1, 0($t0) # $a1 contém os primeiros 32 bits dos caracteres sw $a2, 4($t0) # $a2 contém os próximos 32 dos caracteres # sw $a1, 0($ra) # $a1 contém os primeiros 32 bits dos caracteres # sw $a2, 4($ra) # $a2 contém os próximos 32 dos caracteres jr $ra # Retorna para quem chamou