Compilation et interruption

compilation DMU

0,5 Opérateurs commun

  • add $r10, $r1, $r2 spectacler10 = r1+r2
  • addi $r1, $zero, 1000spectacle0寄存器和立即数1000相加放入r1
  • lw $r0, 8($sp) spectacleload word sp地址+8 到r0
  • beq $r3, $r9, LABELIndiquez branch equalsi elles sont égales, saut LABEL
  • loadChargé à partir du registre de mémoire
  • storestockage retour
  • Math addi, subi, divi,multi
  • sltIndiquez set if less thansi moins que l' exécution
    • slt $d, $rs, $rt
    • slit $d, $rs, 5
  • j LABEL aborder LABEL
  • jr $a0 registre d'adressage
  • jal LABELJump-un
    • Le PC + 4 actuel est stocké dans le registre $ ra
    • j LABELretour

par exemple

1. sommation Analyse

if(i == j) {
    f = i + j
} else {
    f = i - j
}

compilation

bne $r3, $r4, ELSE # bne——branch not equal
add $r5, $r3, $r4
j EXIT # j——jump
ELSE:
sub $r5, $r3, $r4
EXIT

2.Aux boucle

sum = 0
for(i = 0; i < 100; i++) {
    sum += i
}

compilation

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. Fonctions

  • Corps de fonction étiquette --label
  • saut jal-- et lien (saut et lien)
  • Le passage de paramètres - Stack
# 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 fonction retourne

# 函数体最前面
sw $ra, 0$(sp)
addiu $sp, $sp, -4
lw $t1, 4($sp)
lw $s0, 8($sp)
jr $t1 # 跳转回去

Interrompre

Lorsque le monde extérieur change, l'attention a eu lieu un certain temps en interrompant la CPU. Cette fois, l'état exécuté par la CPU est stockée, le programme d'interruption est exécuté

  • OS chargé lorsque vous chargez le IVT (comme le type de programme 01, les procédures d'intervention d'interruption existent sur 0x003)
  • interruptions matérielles - souris, les actions de réponse du clavier
  • interruption logicielle - niveau de langue gestion des exceptions

Q & A

  • 32 chemin machine interrompue (ISR) seulement quatre octets, la façon d'effectuer la procédure?
    • les interruptions du système d'exploitation, puis exécutez le programme
  • Comment chemin réponse d'interruption clé du système d'exploitation, puis à l'application, le système sait?
    • Chaque clavier est un mappage d'adresse
  • Mauvais? Pourquoi sauter non seulement la gestion des erreurs?
    • Pas une relation, pour réduire le degré de couplage

Je suppose que tu aimes

Origine www.cnblogs.com/littlepage/p/12526798.html
conseillé
Classement