Programación con lenguaje ensamblador Arm de 64 bits: desarrollo de ordenadores de placa única para Raspberry Pi y dispositivos móviles


Precio:
Precio de venta$54.99

Descripción

Introducción

Información general del prefacio en la mayoría de los libros de informática.

Capítulo 1: Primeros pasos

Proporciona un poco de información y el historial del procesador ARM que precede a los modernos procesadores de 64 bits de los que trata este libro. Cubre lo que se necesita para escribir programas como los de este libro. El compilador GNU GCC, GDB, un editor de texto, etc. Cubre el hardware que se requiere para ejecutar los programas de este libro, incluyendo cómo ejecutar una Raspberry Pi en modo de 64 bits o usando otra SBC como la NVidia Jetson Nano.

Habla sobre cómo se representan los programas en la memoria y luego cómo se usa un ensamblador para generarlos. Cubre el proceso de enlace y da un ejemplo muy pequeño. El capítulo concluye con un sencillo programa "Hola mundo" escrito en ensamblador ARM de 64 bits.

Acerca del procesador ARMQué aprenderásPor qué usar ensambladorHerramientas que necesitasComputadoras y númerosInstrucciones de ensamblador ARMRegistros de la CPUMemoria de formato de instrucciones ARMAcerca del ensamblador GCCHola mundoAcerca del comentario inicialDónde empezarInstrucciones de ensambladorDatosLlamar a LinuxIngeniería inversa de nuestro programa

El objetivo es tener siempre programas de ejemplo funcionales, este es el primero, para asegurar que el lector pueda introducirlos, ensamblarlos y enlazarlos.

Capítulo 2: Cargar, sumar y restarNúmeros negativosAcerca del complemento a dosAcerca de la calculadora del programador de GnomeAcerca del complemento a unoBig vs. Little EndianAcerca de Bi-endianVentajas de Little EndianDesplazamiento y rotaciónAcerca de la bandera de acarreoAcerca del desplazador de barrilConceptos básicos de desplazamiento y rotaciónDesplazamiento lógico a la izquierdaDesplazamiento lógico a la derechaDesplazamiento aritmético a la derechaRotación a la derechaRotación a la derecha extendidaMOV/MVNAcerca de MOVTEl temido operando flexible2Registro y desplazamientoNúmero pequeño y rotaciónMVNEjemplos de MOVADD/ADCSuma con acarreoSUBCapítulo 3: Herramientas

Ahora que podemos empezar a escribir código más largo, necesitamos entrar en la depuración. También introducimos los makefiles. Cubrimos los conceptos básicos y los flujos de trabajo típicos para escribir/depurar programas.

GNU MakeRecompilación de un archivoUna regla para construir archivos .sDefinición de variablesCompilación cruzadaCompilación para ARM en IntelCompilación para AndroidCompilación para iOSGDBPreparación para la depuraciónInicio de GDBControl de código fuente y servidores de compilaciónGitJenkinsCapítulo 4: Controlando el flujo del programa

Introduce cómo hacer declaraciones if/else y bucles. Introduce patrones de diseño. Habla más sobre cómo hacer que tus programas sean legibles y mantenibles.

Salto incondicionalAcerca de la CPSSalto condicionalAcerca de la instrucción CMPBuclesBucles FORBucles WhileIf/Then/ElseOperadores lógicosANDEORORRBICPatrones de diseñoConversión de enteros a AsciiUso de expresiones en constantes inmediatasAlmacenamiento de un registro en memoria¿Por qué no imprimir en decimal?Rendimiento de las instrucciones de saltoMás instrucciones de comparaciónResumenCapítulo 5: Gracias por los recuerdos

Cubre la carga y el almacenamiento en la memoria de la Pi. Operación de memoria indexada, etc.

Definición de contenidos de memoriaCarga de un registroDireccionamiento relativo al PCCarga desde memoriaIndexación a través de memoriaEscritura inversaDireccionamiento post-indexadoConversión a mayúsculasAlmacenamiento de un registroRegistros doblesResumenCapítulo 6: Funciones y la pilaPilas en LinuxSalto con enlaceAnidación de llamadas a funcionesParámetros de función y valores de retornoGestión de registrosResumen del algoritmo de llamada a funciónMayúsculas revisadasMarcos de pilaEjemplo de marco de pilaDefinición de símbolosUna optimización másMacrosDirectiva de inclusiónDefinición de macrosEtiquetas¿Por qué macros?ResumenCapítulo 7: Servicios del sistema operativo Linux

Cubre cómo funcionan las llamadas al sistema Linux desde el ensamblador. Cubre cómo realizar E/S de archivos básicas y otras tareas útiles como el cronometraje del código.

Tantos serviciosConvención de llamadasEstructurasEnvoltoriosConversión de un archivo a mayúsculasApertura de un archivoVerificación de erroresBucleResumenCapítulo 8: Programación de pines GPIOCrear un programa de ensamblador simple para hacer parpadear algunos LED conectados a través de una placa de pruebas a los pines GPIO.Descripción general de GpioEn Linux, todo es un archivoLeds intermitentesMás cerca del hardwareAcerca de la memoria RAM de Raspberry Pi 4En los dispositivos, todo es memoriaRegistros en bitsRegistros de selección de función GPIORegistros de ajuste y borrado de salida GPIOMás LEDs intermitentesAcceso raíz

Autor: Stephen Smith
Editorial: Apress
Publicado: 02/05/2020
Páginas: 428
Tipo de encuadernación: Tapa blanda
Peso: 1.40 lbs
Tamaño: 9.21h x 6.14w x 0.92d
ISBN13: 9781484258804
ISBN10: 1484258800
Categorías BISAC:
- Computadoras | Hardware | General

Sobre el autor
Stephen Smith es un arquitecto de software jubilado, residente en Gibsons, BC, Canadá. Ha estado desarrollando software desde la escuela secundaria, o demasiados años para registrar. Desde que se jubiló, ha dedicado su tiempo a la programación de Inteligencia Artificial, obtuvo su licencia avanzada de radioaficionado y disfruta del ciclismo de montaña, el senderismo y la fotografía de naturaleza. Continúa escribiendo su popular blog de tecnología en smist08.wordpress.com.