compilación PSIM
0.5 Operadores Común
add $r10, $r1, $r2
espectáculor10 = r1+r2
addi $r1, $zero, 1000
espectáculo0寄存器和立即数1000相加放入r1
lw $r0, 8($sp)
espectáculoload word sp地址+8 到r0
beq $r3, $r9, LABEL
Indicarbranch equal
si son iguales, marca de saltoload
Cargado de registro de memoriastore
volver almacenamiento- Matemáticas
addi
,subi
,divi
,multi
slt
Indicarset if less than
si menos de la ejecuciónslt $d, $rs, $rt
slit $d, $rs, 5
j LABEL
ETIQUETA abordarjr $a0
Registro de direccionamientojal LABEL
Salto-uno- La corriente de PC + 4 se almacena en el registro $ ra
j LABEL
regreso
por ejemplo
1. Analizar la suma
if(i == j) {
f = i + j
} else {
f = i - j
}
compilación
bne $r3, $r4, ELSE # bne——branch not equal
add $r5, $r3, $r4
j EXIT # j——jump
ELSE:
sub $r5, $r3, $r4
EXIT
2. para bucle
sum = 0
for(i = 0; i < 100; i++) {
sum += i
}
compilación
addi $s3, $zero, 0 # sum = 0
addi $s4, $zero, 0 # i = 0
addi $s5, $zero, 100 # 100
LOOP:
beq $s4, $5, EXIT
add $s3, $s4, $s3
addi $s4, $s4, 1
j LOOP # -16
EXIT:
3. Funciones
- cuerpo de la función etiqueta --label
- salto jal-- y enlace (salto y enlace)
- el paso de parámetros - Pila
# fac(5)
addiu $s0, $0, 5 # 函数参数5存入栈 add immidiate unsigned
sw $s0, $sp # s0写入sp
addi $sp, $sp, -4 # 栈指针指向下一个
jal FACT # 跳转
# 函数体
lw $s0, 4($sp) # 读取参数
4. La función retorna
# 函数体最前面
sw $ra, 0$(sp)
addiu $sp, $sp, -4
lw $t1, 4($sp)
lw $s0, 8($sp)
jr $t1 # 跳转回去
interrupción
Cuando el mundo exterior cambia, la atención se produjo algún tiempo mediante la interrupción de la CPU. Esta vez, el estado ejecutado por la CPU se almacena, se ejecuta el programa de interrupción
- OS carga cuando se carga el IVT (como el programa de Tipo 01, existen procedimientos de respuesta de interrupción en 0x003)
- Las alarmas de proceso - ratón, las acciones de respuesta del teclado
- interrupción de software - el manejo de excepciones lenguaje de alto nivel
Q & A
- 32 ruta (ISR) sólo cuatro bytes máquina interrumpe, cómo llevar a cabo el procedimiento?
- Operando las interrupciones del sistema y, a continuación, ejecutar el programa
- Cómo clave de respuesta de interrupción ruta de acceso al sistema operativo y después de la aplicación, el sistema sabe?
- Cada teclado es una asignación de dirección
- Mal? ¿Por qué no acaba de saltar el tratamiento de errores?
- Ni una sola relación, para reducir el grado de acoplamiento