Libro de texto: Organización de Máquinas Digitales 1 (8086, 8051, MC68000) - Vega Luna, Salgado, Sánchez

Hướng dẫn chi tiết về tổ chức và quản lý các máy kỹ thuật số nhằm tối ưu hóa quy trình làm việc. Phương pháp áp dụng hiệu quả cho doanh nghiệp hiện đại.

Chuyên ngành

Kỹ thuật Điện tử

Người đăng

Ẩn danh

Thể loại

Sách giáo khoa

1998

215
0
0

Phí lưu trữ

55 Point

Tóm tắt

I. Tổng quan về tổ chức máy số 1

Tổ chức máy số 1 là môn học cốt lõi trong chương trình kỹ thuật điện tử. Môn học này nghiên cứu kiến trúc và nguyên lý hoạt động của các bộ vi xử lý 16-bit. Giáo trình được biên soạn tại Đại học Tự trị Đô thị Mexico, cơ sở Azcapotzalco. Nội dung tập trung vào hai bộ vi xử lý chính là Intel 8086 và Motorola MC68000. Ngoài ra còn nghiên cứu bộ vi điều khiển Intel 8051. Môn học cung cấp nền tảng vững chắc về phần cứng máy tính. Sinh viên học cách các lệnh assembly hoạt động ở cấp thấp. Kiến thức này rất quan trọng cho việc thiết kế hệ thống nhúng. Giáo trình bao gồm cả lý thuyết và thực hành phòng thí nghiệm. Phương pháp giảng dạy kết hợp giữa bài giảng và bài tập thực tế. Đây là bước đệm cần thiết trước khi học các môn nâng cao hơn.

1.1. Mục tiêu của môn học tổ chức máy số

Mục tiêu chính là hiểu kiến trúc bên trong của bộ vi xử lý. Sinh viên nắm được cách dữ liệu được xử lý trong CPU. Môn học giúp hiểu rõ cơ chế địa chỉ hóa bộ nhớ. Việc học cách mã hóa lệnh là yếu tố then chốt. Sinh viên cũng cần biết cách sử dụng các thanh ghi. Khả năng đọc và viết chương trình assembly là kỹ năng cốt lõi. Môn học xây dựng nền tảng cho thiết kế hệ thống số phức tạp hơn.

1.2. Các tác giả và nguồn gốc giáo trình

Giáo trình do ba giảng viên Đại học UAM-Azcapotzalco biên soạn. José Ignacio Vega Luna có chuyên môn về mạch logic và hệ thống số. Gerardo Salgado Guzmán giảng dạy phòng thí nghiệm hệ thống số. Roberto Sánchez González phụ trách môn tổ chức máy số. Cả ba đều có kinh nghiệm giảng dạy về vi xử lý và vi điều khiển. Giáo trình được xuất bản lần đầu năm 1998 bởi nhà xuất bản trường đại học. Đây là tài liệu chính thức phục vụ đào tạo kỹ sư điện tử tại Mexico.

II. Phân tích kiến trúc bộ vi xử lý 16 bit

Bộ vi xử lý 16-bit đánh dấu bước tiến quan trọng trong lịch sử máy tính. Intel 8086 và Motorola MC68000 là hai đại diện tiêu biểu nhất. Cả hai đều xử lý dữ liệu 16-bit mỗi chu kỳ lệnh. Tuy nhiên kiến trúc bên trong của chúng khác biệt đáng kể. Intel 8086 sử dụng kiến trúc phức hợp với nhiều thanh ghi chuyên dụng. Motorola MC68000 có kiến trúc đều hơn với nhiều thanh ghi đa năng. Mỗi bộ vi xử lý có bộ lệnh riêng biệt và cách mã hóa khác nhau. Việc hiểu hai kiến trúc giúp sinh viên so sánh các phương pháp thiết kế. Kiến thức này áp dụng rộng rãi trong thiết kế hệ thống nhúng. Bộ vi điều khiển 8051 cũng được nghiên cứu như ví dụ về hệ thống tích hợp. Môn học phân tích chi tiết cách mỗi bộ xử lý quản lý bộ nhớ.

2.1. Kiến trúc bộ vi xử lý Intel 8086

Intel 8086 có kiến trúc phức hợp với các thanh ghi đặc thù. Thanh ghi AX dùng cho toán số học, BX cho địa chỉ cơ sở. Các thanh ghi segment cho phép truy cập bộ nhớ 1MB. Bộ xử lý sử dụng cơ chế pipeline đơn giản để tăng tốc. Hệ thống cờ trạng thái theo dõi kết quả phép tính. Cách mã hóa lệnh của 8086 linh hoạt nhưng phức tạp. Mỗi lệnh có nhiều cách mã hóa tùy thuộc chế độ địa chỉ hóa.

2.2. So sánh với Motorola MC68000

MC68000 có kiến trúc đều hơn với 8 thanh ghi dữ liệu và 8 thanh ghi địa chỉ. Thanh ghi địa chỉ chuyên dụng giúp đơn giản hóa lập trình. Hệ thống mã hóa lệnh của MC68000 gọn gàng và dễ hiểu hơn. MC68000 hỗ trợ bộ nhớ tuyến tính 16MB thay vì phân đoạn. Phương pháp địa chỉ hóa của MC68000 phong phú hơn 8086. So sánh hai kiến trúc giúp hiểu triết lý thiết kế khác nhau.

III. Phương pháp địa chỉ hóa và mã hóa lệnh

Chế độ địa chỉ hóa là cách bộ vi xử lý tìm dữ liệu trong bộ nhớ. Mỗi bộ vi xử lý hỗ trợ nhiều chế độ địa chỉ hóa khác nhau. Địa chỉ hóa trực tiếp sử dụng địa chỉ cụ thể trong lệnh. Địa chỉ gián tiếp dùng giá trị trong thanh ghi làm địa chỉ. Địa chỉ hóa cơ sở kết hợp thanh ghi với độ dịch chuyển cố định. Địa chỉ hóa chỉ mục dùng thanh ghi chỉ mục để truy cập mảng. Chế độ cơ sở chỉ mục kết hợp cả hai phương pháp trên. Mã hóa lệnh chuyển đổi mnemonic assembly sang mã máy nhị phân. Mỗi lệnh có opcode riêng và cách biểu thị toán hạng khác nhau. Việc hiểu mã hóa giúp đọc và gỡ lỗi chương trình hiệu quả. Giáo trình trình bày bảng mã hóa chi tiết cho từng lệnh. Sinh viên cần nắm vững để viết chương trình assembly chính xác.

3.1. Các chế độ địa chỉ hóa trong 8086

Intel 8086 hỗ trợ nhiều chế độ địa chỉ hóa đa dạng. Chế độ trực tiếp dùng địa chỉ 16-bit trong trường độ dịch chuyển. Chế độ thanh ghi sử dụng trực tiếp giá trị trong thanh ghi. Địa chỉ hóa cơ sở sử dụng BX hoặc BP kết hợp độ dịch chuyển. Chế độ chỉ mục dùng SI hoặc DI để duyệt mảng dữ liệu. Chế độ cơ sở chỉ mục là sự kết hợp linh hoạt nhất. Mỗi chế độ phù hợp với các tình huống lập trình khác nhau.

3.2. Mã hóa lệnh và biểu diễn assembly

Mã hóa lệnh chuyển đổi từ ngôn ngữ assembly sang mã máy. Mỗi lệnh gồm opcode xác định phép toán cần thực hiện. Trường mod và r/m xác định chế độ địa chỉ hóa toán hạng. Trường độ dịch chuyển chứa địa chỉ hoặc giá trị bù. Một số lệnh có nhiều cách mã hóa khác nhau tùy toán hạng. Việc đọc bảng mã hóa giúp hiểu cách máy tính xử lý lệnh. Giáo trình cung cấp ví dụ mã hóa chi tiết cho từng lệnh.

IV. Ứng dụng và tầm quan trọng trong kỹ thuật

Kiến thức tổ chức máy số có ứng dụng rộng rãi trong kỹ thuật hiện đại. Thiết kế hệ thống nhúng đòi hỏi hiểu sâu về vi xử lý. Các bộ điều khiển công nghiệp sử dụng nguyên lý tương tự. Lập trình driver phần cứng cần kiến thức assembly vững chắc. Hệ thống thời gian thực yêu cầu tối ưu hóa ở cấp phần cứng. Kiến thức về kiến trúc máy tính giúp chọn giải pháp phù hợp. Hiểu biết hai kiến trúc 8086 và MC68000 mở rộng khả năng thiết kế. Bộ vi điều khiển 8051 ứng dụng rộng rãi trong thiết bị gia dụng. Từ thiết kế robot đến hệ thống tự động hóa đều cần nền tảng này. Kỹ sư phần cứng phải hiểu cách CPU tương tác với bộ nhớ. Giáo trình cung cấp kiến thức thực tiễn cho nghề nghiệp kỹ sư. Đây là nền tảng không thể thiếu cho ngành kỹ thuật điện tử.

4.1. Ứng dụng trong hệ thống nhúng hiện đại

Hệ thống nhúng ngày nay dựa trên nguyên lý tổ chức máy số. Bộ vi điều khiển điều khiển thiết bị gia dụng và công nghiệp. Hiểu kiến trúc vi xử lý giúp tối ưu hóa hiệu suất hệ thống. Lập trình assembly cho phép kiểm soát chính xác phần cứng. Hệ thống IoT sử dụng bộ vi điều khiển với tài nguyên hạn chế. Kiến thức tổ chức máy số giúp viết firmware hiệu quả hơn.

4.2. Hướng phát triển và học tập tiếp theo

Sau môn học này, sinh viên có thể học kiến trúc máy tính nâng cao. Thiết kế hệ thống số trên FPGA là hướng phát triển tự nhiên. Lập trình hệ thống thời gian thực cần nền tảng vững chắc. Các bộ vi xử lý ARM hiện đại kế thừa nguyên lý tương tự. Kiến thức về assembly giúp hiểu trình biên dịch tốt hơn. Đây là bước đệm quan trọng cho nghiên cứu và phát triển phần cứng.

21/04/2026

Trích đoạn nội dung tài liệu

" Organización de máquinas digitales 1 José Ignacio Vega Luna, Gerardo Salgado.Guzmán y Roberto Sánchez González UN/\/ERSIDAD AUTONOMA METROPOUTANA IA\ Casa abielTa al tiempo Azcapotzalco J OSÉ IGNACIO VEGA LUNA es in- geniero electrónico y maestro en Ciencias de la Computación de la UAM-Azcapotzalco. En la misma institución ha impartido materias d e circuitos lógicos, sistemas digitales y organización de máquinas digitales. En la Universidad Nacional de Inge- niería de Managua, Nicaragua, impartió cur- sos de microprocesadores. En la actualidad sus áreas de trabajo son las siguien tes: redes de computadoras, sistemas operativos yaplicacio- nes de microprocesadores y controladores. G ERARDO SALGADO GUZMÁN realizó estudios de Ingeniería Electrónica en la UAM-Azcapo- tzaleo. En esta universi<;lad ha impartido cursos de circuitos lógicos, sistemas digitales, la- boratorio de sistemas digitales y laboraforio de máquinas digitales. Actualmente cursa estudios de maestría en Ciencias de la Computación. Sus áreas de trabajo son: redes novell y aplicaciones de microprocesadores y microcontroladores. R OBERTO SÁNCHEZ GONZÁLEZ cursó estudios de Ingeniería Electrónica en la UAM-Azcapo- tzaleo. Ha impartido cursos de circuitos lógicos, sistema digita- les, organización de máquinas digitales y laboratorio de máquinas digitales en la misma universidad. Actualmente sus áreas de trabajo son: redes de computadoras, sistemas operativos y aplicaciones de microprocesadores y microcontroladores. ORGANIZACIÓN DE MÁQUINAS DIGITALES I COLECCIÓN Libros de Texto y Manuales de Práctica SERIE Material de apoyo a la docencia (Teoría y prácticas de laboratorio; problemarios) Organización de ll1áquinas ~igitales 1 J:.u A le A P O TlAl CO ~ COSfI BIBlIOIECA José Ignacio Vega Luna Gerardo Salgado Guzmán Roberto Sánchez González - 289 :.l 4S5 UNIVERSIDAD AUTONOIv1A METROPOUTANA lA C<lsa at>e1t3 al tiempo Azcapotzalco UNIVERSIDAD AUTÓNOMA METROPOLITANA Rector General Dr. Julio Rubio Oca Secretario General Mtro. José Luis Rodríguez Herrera UNIDAD AZCAPOTZALCO Rectora Mtra. Mónica de la Garza Malo Secretario Lic. Guillermo Ejea Mendoza Coordinador de Extensión Universitaria Lic. Enrique López Aguijar Jefe de la Sección Editorial Lic. Valentín Alrnaraz Moreno Portada Virginia Flores/Sans Serif Editores Composición tipográfica, diseño, producción y cuidado editorial Sans Serif Editores, telfax 674 60 91 Primera edición 1998 ISBN: 970-654-075-X © Universidad Autónoma Metropolitana Unidad Azcapotzalco Av. Impreso en México • Prinled in Mexico PRÓLOGO I objetivo de este trabajo es apoyar el proceso de enseñanza-aprendizaje de la materia Organi- zación de Máquinas Digitales I correspondiente a la carrera de Ingeniería Electrónica de la uAM-Azcapotzalco, en la que se aborda el estudio de dos microprocesadores de 16 bits (el 8086 _ _• de Intel y el MC68000 de Motorola), así como de un microcontrolador (el 8051 de Intel). Estos temas comprenden todo el plan de estudios de la materia. Se trata de proporcionar al estudiante una guía, un complemento de lo enseñado por el profesor en el aula. Se consultaron diversos títulos sobre el tema. Las tablas de instrucciones y algunas figuras del microprocesador 8086 fueron tomadas de The 8086/88 Family de John Uffenbeck, por considerar que reflejan la esencia y el funcionamiento de las instrucciones tratadas. Finalmente, deseamos agradecer al profesor Raymundo Lira, jefe del Área de Sistemas Digitales, el apoyo material y moral para la realización de este trabajo, así como a los estudiantes de Ingeniería Electrónica las observaciones y comentarios sobre el contenido, y de manera muy especial a Rocío de los Ángeles Hemández Loyo su ayuda invaluable en todo momento para elaborar y concluir el mismo. Los AUTORES PROGRAMA DEL CURSO EL MICROPROCESAOOR 8086/88 • Familia de microprocesadores de 16 bits de Intel • Arquitectura y set de instrucciones • Técnicas de programación • El módulo de la CPU del 8086 • Sistemas multiprocesador EL MICROCONTROLAOOR 8051 • La familia MCS-51 • Arquitectura interna • Registros • Puerto serie • Interrupciones EL MlCROPROCESAOOR MC68000 • Arquitectura interna • Operación y temporización del bus • Procesamiento de excepciones • Modos de direccionamiento • Interfaz con los periféricos de la familia 6800 MICROPROCESADORES-TÓPICOS 1. Arquitectura de la CPU • Registros internos • Banderas • Set de instrucciones 9 Programa del curso 2, Interface eléctrica • Bus de datos • Bus de direcciones • Bus de control • Circuito de reloj a) Arquitectura de la CPU 8086/88 b) Memoria segmentada e) Modos de direccionamiento d) Insh'tlcciones de transferencia de datos e) Instrucciones para el manejo de cadenas (strings) f! Instrucciones lógicas g) Instrucciones aritméticas h) Instrucciones de transferencia de control i) Instrucciones de control del procesador • 10 CAPÍTULO 1 EL MICROPROCESADOR 8086/88 FAMILIA DE MICROPROCESADORES DE 16 BITS o Intel: 5 microprocesadores. Ejemplos: iAPX 86/21-Sistema de tres circuitos integrados basado en el microprocesador 8086, el coproce- sador numérico de datos (NDP) 8087 Y el procesador de entrada/salida (IOP) 8089. 8087 & 8089 expanden las capacidades del 8086: o Con el 8087, el 8086 realiza operaciones matemáticas cien veces más rápido. o 8088 idéntico al 8086 pero puede leer de memoria sólo 8 bits a la vez. o 805186 & 805188 upgrades del 8086 y el 8088 e incorporan de 1 a 20 componentes en un circuito integrado. o 386 o 80287 procesador numérico de datos para el 80286 en la versión APX 286/20. o 805130 & 80510 procesadores de sistemas operativos (osp's): iRMX86 Operating System y CP/M86. El 8088 es un microprocesador que tiene un bus de datos interno de 16 bits y un bus de datos externo de 8 bits. Requiere dos operaciones de lectura a memoria para obtener la misma información que lee el 8086, por lo que se deduce que el 8088 opera menos eficientemente que el 8086. El 8086 y el 805186 leen datos de la memoria organizada en dos bancos: uno para los bytes con dirección par y otro para los bytes con dirección impar. En esta forma el microprocesador puede leer (o escribir) un byte con dirección par y otro con dirección impar simultáneamente. Para leer una instrucción de 6 bytes, un microprocesador de 16 bits requerirá 3 ciclos de lectura a memoria, mientras que uno de 8 bits requerirá 6 ciclos. Los ciclos adicionales alentan al micropro- cesador. 11 Organización de máquinas digitales 1 CUADRO 1. Ejemplos de configuración de sistemas para microprocesadores de 16 bits de la familia Intel Microprocesadores Coprocesadores Nombre del sistema 8086 8088 80186 80188 80286 8087 8089 80130 80150 80287 iAPx86 / 10 1 iAPx86/ 11 1 1 iAPx86/ 12 1 2 iAPx86/ 20 1 1 iAPx86/ 21 1 1 1 iAPx86/ 22 1 1 2 iAPx86/30 1 1 iAPx86/ 40 1 1 1 iAPx86 / S0 1 1 iAPx88/ 1O 1 iAPx88/ 11 1 1 iAPx88/ 12 1 2 iAPx88/20 1 1 iAPx88/ 21 1 1 1 iAPx88/ 22 1 1 2 iAPx88/30 1 1 iAPx88/ 40 1 1 1 iAPx88/S0 1 1 iAPx186/ 1O 1 iAPx186/ 11 1 1 iAPx186/ 20 1 1 iAPx186/21 1 1 1 iAPx186/30 1 1 iAPx186 / 40 1 1 1 iAPx186 / S0 1 1 iAPx188 / 1O 1 iAPx188/ 11 1 1 iAPx188/ 20 1 1 iAPx188/ 21 1 1 1 iAPx188/30 1 1 iAPx188/ 40 1 1 1 iAPx188/S0 1 1 iAPx286 / 1O 1 iAPx286 / 20 1 1 8086 Microprocesador de 16 bits. 8088 Idéntico al 8086 excepto por el bus de datos de 8 bits. 80186 Microprocesador de 16 bits de alta integración. Incluye generador de reloj, controlador de interrupciones programable. dos canales de DMA, tres temporizadores programables de 16 bits Y lógica programable de selección de chip. 80188 Idéntico al 80186 excepto por el bus de datos de 8 bits. 80286 8086 de alto rendimiento con espacio de direccionamiento de 16M-bytes. Manejo de memoria integrado y soporte para memoria virtual y sistemas de operación. 8087 Procesador numérico de datos. Usado con el 8086/88 y el 80186/188 para reducir hasta en cien veces el tiempo de procesamiento de funciones ma temáticas complejas. 8089 Procesador de entrada/salida. Usado con el 8086/88 y el 80186/188 para proporcionar capacidades de DMA de alta velocidad . 80130 Procesador para el sistema operativo iRMX 86 que contiene mum.s de las funciones primitivas del sistema operativo. 80150 Igual que el 80130, pero éste soporta el sistema operativo Cr!M 86. 80287 Igual que el 8087, sólo que éste soporta microprocesador 80286. El microprocesador 8086/88 ARQUITEcruRA DE LA CPU 8086/88 Funciones • Generar todas las señales de sincronización del sistema. • Sincronizar la transferencia de datos entre memoria, dispositivos de entrada/salida yelemen- tos internos. La BlU (bus interface unit) ejecuta todas las funciones de hardware para la transferencia de datos entre el mundo exterior y la EU (execute unit), que recibe los códigos de operación y los datos de la BIU, ejecuta esas instrucciones y almacena los resultados en los registros de propósito general. • 8088 BlU de 8 bits; queue de 4 bytes. • 8086 BIU de 16 bits; queue de 6 bytes. La EU es la misma en los dos, por lo que los programas pueden correr en ambos sin cambio alguno. Overlap Puesto que la CPU tiene la BlU separada de la EU, se pueden realizar ciclos de búsqueda fetch y de ejecución. La BIU saca el w (instruction pointer register) en el bus de direcciones, para leer el byte o palabra seleccionado. El IP = IP + lo 3. El código de la instrucción pasa a la queue (registro first-in jirst-out). Si inicialmente la queue está vacía, la EU saca inmediatamente el código y comienza la ejecución. Mientras la EU ejecuta la instrucción, la BlU busca un nuevo código. Dependiendo del tiempo de ejecución de la primera instrucción, la BlU puede llenar la queue antes de que la EU esté lista para ejecutar otra instrucción. La BlUbuscará nuevos códigos siempre que la queue tenga lugar para 1 (en el 8088) o 2 (en el 8086) bytes. Entonces la EU puede ejecutar instrucciones continuamente, sin esperar a que la BIU entregue un nuevo código. La EU entra en un modo wait cuando la instrucción accesa a una localidad de memoria cuyo contenido no esté en la queue o bien cuando la instrucción es un salto (los bytes en la queue son descartados). La BlU espera cuando la ejecución de una instrucción tarda (es lenta). La instrucción tarda 86 ciclos de reloj. La BIU espera a que la EU saque 1 o 2 bytes de la queue. 13 Organización de máquinas digitales 1 bIlsqueda ~ Tiempo BIU búsqueda bIlsqueda búsqueda búsqueda bUsqueda búsqueda lee dato búsqueda búsqueda búsqueda búsqueda búsqueda EU espera ejecución ejecución ejecuciOn ejecución . ejecución ejecución ejecución espera Figura 1. Modelo pipe-line del 8086/88 . re Bus de direcciones Bus de datos Buses del sistema "> ~ Generación de dirección y bus de control /'t I AH BH Registros generales Al Bl / /~ L /~A \ Cola de ¡nslrue- ciones '" 6 5 4 eH el K" 3 2 OH Ol es 1 BP Registros de ES segmento 01 SS SI OS SP Apuntador de instrucción J \/ --,-""T""----,----r--~--7<C--- Bus inlerno de dalos - - - - - - - - - - - - - - , '7 \/ Unidad de interfaz del ~s Unidad de ejecución (BIU) (EU) Figura 1. Diagrama de bloques interno de una CPU 8086. 14 El microprocesador 8086/88 REGISTROS INTERNOS DE LA CPU Grupo de datos: acumulador, BX, ex, DX Pueden accesarse como bytes o palabras y se usan para almacenar temporalmente resultados. Grupo de apuntadores e índices Registros de 16 bits. Ejemplo: La instrucción MOV AH, [SI ] 3000H AF 300lH 15 3002H 80 3003H 25 3004H C6 Si SI =3000H 3005H F2 entonces AH = AFH. 3006H 70 3007H 26 Algunas veces un registro apuntador se utilizará como apuntador a un byte de memoria y otras veces a una palabra (word) de memoria. Ejemplo: Si se utiliza [SI +!oSI] = 15AFH. MOV AH, BYTE PTR [SI) MOV AX, BYTE PTR [SI) Cuando se almacenan palabras (16 bits) en memoria, el byte bajo se almacena en la localidad de memoria de menor orden. El registro lP (in5truction pointer) es parte de la BlU y el programador no tiene control directo sobre él.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ