Red de conocimiento informático - Aprendizaje de código fuente - La conexión entre el conjunto de instrucciones y el lenguaje ensamblador

La conexión entre el conjunto de instrucciones y el lenguaje ensamblador

1. La mayoría de los códigos de los sistemas operativos modernos están escritos en lenguaje C, y solo una pequeña cantidad de códigos que tratan directamente con el hardware están escritos en lenguaje ensamblador. Es trabajo del compilador y ensamblador convertir el código fuente del sistema operativo en el código de máquina (instrucciones) correspondiente a la CPU.

2. En cuanto a tu pregunta sobre "¿usar el conjunto de instrucciones?", no lo entiendo. Si no ejecuta instrucciones, ¿cómo puede controlar la CPU? Por supuesto, las instrucciones que ejecuta son las instrucciones del conjunto de instrucciones; de lo contrario, la CPU no las reconocería, ¿verdad?

3. ¿Cuál es la conexión entre las instrucciones y el lenguaje ensamblador? Ésa es la cuestión del ensamblador. El lenguaje ensamblador es un tipo de lenguaje de programación y la CPU solo puede ejecutar instrucciones. El lenguaje ensamblador puede generar instrucciones (código de máquina) mediante la compilación por parte del ensamblador. Hacer esta pregunta es lo mismo que preguntar "¿Existe alguna conexión entre el lenguaje C y los archivos exe?" Por supuesto, diferentes ensambladores especifican diferentes formatos de lenguaje ensamblador. Tome intel80x86 como ejemplo,

cmp dword ptr [ebp-8], 0 (formato microsoft) y cmpl $0, -8 [ebp] (formato Gnu)

Las dos oraciones Están escritos en el formato especificado por diferentes ensambladores, pero los códigos de máquina (instrucciones) que generan en los ensambladores correspondientes son los mismos. Quizás algún día haga un ensamblador y habrá otro formato de lenguaje ensamblador.

4. La API del sistema operativo es la interfaz de programación proporcionada por el sistema operativo al usuario. Es parte del sistema operativo. ¿Qué significa estar "relacionado con el conjunto de instrucciones?" ". Creo que esta pregunta es la misma que la del punto 2

Lo anterior es mi respuesta, no sé si lo dejé claro...