Red de conocimiento informático - Conocimiento sistemático - ¿Cómo es un programa compilado en lenguaje ensamblador?

¿Cómo es un programa compilado en lenguaje ensamblador?

El lenguaje ensamblador es un lenguaje simbólico que utiliza mnemónicos literales para representar instrucciones de máquina. Es el lenguaje más cercano al código de máquina. Sus principales ventajas son que consume menos recursos y tiene una alta eficiencia en la ejecución del programa. Sin embargo, el lenguaje ensamblador de diferentes CPU puede ser diferente, por lo que no es fácil de trasplantar y se usa principalmente para programar microcontroladores.

Actualmente, el foco principal de los productos de microcomputadoras de un solo chip sigue estando en el campo de los 8 bits, que se utiliza principalmente en seis mercados principales: aplicaciones automotrices, electrónica de consumo, computadoras y periféricos para PC, telecomunicaciones y comunicaciones. , automatización de oficinas y control industrial Entre ellos, el mercado automotriz se encuentra principalmente en Europa y Estados Unidos, mientras que la región de Asia y el Pacífico está dominada por la electrónica de consumo, con grandes cantidades y precios unitarios bajos como productos principales. Existe una diferencia de precio considerable entre los microcontroladores de 16 bits y los productos de 8 bits, y también se están abriendo nuevas áreas de aplicación. Aún en desarrollo, los primeros microcontroladores de 8 bits todavía eran la corriente principal de los productos de microcontroladores en 2005.

La siguiente es una señal de control de pulso enviada por un microcontrolador. Tiene anotaciones detalladas. ¡Puedes aprenderla!

datos .sección 'datos'

r1 equ [40h]

r2 equ [41h]

r3 equ [42h]

r4 ecu [43h]

r5 ecu [45h]

r6 ecu [46h]

r7 ecu [47h]

r8 equ [48h]

sw1 equ pa.1

sw2 equ pa.2

sw3 equ pa.3

sw4 equ pa.0

r9 equ pa.6

r10 equ pa.7

PN equ [50h].0

count equ [51h]

main .section 'código'

org 000h

jmp start

ORG 010H

******************INICIO PRO************

inicio:

clr recuento

mov a, 2

mov recuento, a

;******************

clr r1

clr r2

clr pa.0

clr pb

mov a,0feh

mov pac,a

mov a,0f3h

mov pbc,a

set pb.2

clr pb .3

CLR [50H]

;******************UTILIZAR SÓLO PARA AR1501*****

******************************************

Alp1: SZ PN

JMP PLUSE0

CLR PB2

SET PB3

SET PN

JMP ADELAY1

PLUSE0: SET PB2

CLR PB3

CLR PN

-******* *; *******EL TIEMPO DE RETARDO 38MS PLUSE ES ALTO***

Adelay1: mov a, 38; el nivel alto del pulso del motor inicia el tiempo

mov r1, a

Alp12: mov a, 165

mov r2, a

Alp11: sdz r

2

jmp Alp11

sdz r1

jmp Alp12

;************** ** *******************

clr pb.2

clr pb.3

;* *************************EL TIEMPO DE RETARDO 24MS PLUSE ES BAJO***

Adelay2: mov a, 24; nivel bajo de pulso Sincronización a tiempo

mov r1, a

Alp22: mov a, 165

mov r2, a

Alp21: sdz r2

jmp Alp21

sdz r1

jmp Alp22

;*************** *** ******END************

;********************** ******** **********

hongwai: NOP

lp1: NOP

establecer pa.0

;* ******************TIEMPO DE RETARDO 15.6MS PLUSE ES BAJO****

retardo1: mov a, 16 ; el nivel alto del pulso infrarrojo inicia el tiempo

mov r1, a

lp12: mov a, 162

mov r2, a

lp11 : sdz r2

jmp lp11

sdz r1

jmp lp12

;************ ******END**** ****

;******************TIEMPO DE RETARDO 46.8MS EL PULSO ES ALTO** ***

clr pa. 0

retraso2: mov a, 48; temporización de tiempo de encendido de bajo nivel de pulso infrarrojo

mov r1, a

lp22: mov a, 162

mov r2, a

lp21: sdz r2

jmp lp21

sdz r1

jmp lp22

;************************EDN ******* ***********

jmp Alp1