参考程序 - 图文

更新时间:2023-10-23 23:19:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一次测验:

已知(A)=02H,(30H)=10H,(SP)=50H

ORG 1000H

DB 30H, 50H, 60H ;程序存储器(1000H)=30H,(1001H)=50H,(1002H)=60H MOV DPTR, #1000H ;(DPTR)=1000H

MOVC A, @A+DPTR ;(A)= 程序存储器(02H+1000H)=60H

ANL 30H, #05H ;(30H)和05H相与,即10H和05H相与,结果(30H)=00H PUSH 30H ;(SP)+1→(SP),(SP) = 51H;

(30H)=00H 进栈,即(51H)=00H

1、 红色标记操作数的寻址方式依次为:

立即寻址方式、基址寄存器加变址寄存器的间接寻址方式、直接寻址方式 2、 程序执行后,

(A)=60H, (SP)=51H,(51H)=00H,(30H)=00H

1

课后习题3-22:

试编写程序,查找在内部RAM的20H~40H单元中是否有0AAH这一数据。 若有,则将41H单元置为“01H”; 若未找到,则将41H单元置为“00H”。

START: MOV R0, #20H

MOV R2, #21H LOOP: MOV A, @R0 CJNE A, #0AAH, NEXT MOV 41H, #01H

LJMP EXIT NEXT: INC R0 DJNZ R2, LOOP

MOV 41H, #00H

EXIT: RET

要点:

1、寄存器间接寻址

2、DJNZ指令,实现控制程序循环

;设置循环次数

;比较不相等则转移 ;跳转指令

;R0增1

;R2先减1,若不为0则转移2

3-23:

试编写程序,查找在内部RAM的20H~40H单元中出现“00H”这一数据的次数。 并将查找到的结果存入41H单元。

START: MOV MOV

MOV LOOP: MOV JNZ

INC

NEXT: INC DJNZ

RET

41H, #00H R0, #20H R2, #21H

A, @R0 NEXT 41H R0

R2, LOOP ;A不为0则转移 3

3-11:

已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。下述程序执行后:

POP DPH ;(52H)→DPH,(SP) = 51H POP DPL ;(51H)→DPL,(SP) = 50H MOV DPTR, #4000H ;(DPTR) = 4000H RL

A ;左移 (A) = 04H

MOV B, A ;(B) = 04H

MOVC A, @A+DPTR ;(A) = (程序存储器4004H) = 30H PUSH Acc ;(SP)+1→SP,(SP) = 51H,(51H)=30H MOV A, B ;(A) = 04H INC

A ;(A) = 05H

MOVC A, @A+DPTR ;(A) = (程序存储器4005H) = 50H PUSH Acc ;(SP)+1→SP,(SP) = 52H,(52H)=50H RET ;((SP))→PCH,(SP)-1→SP

;((SP))→PCL,(SP)-1→SP

ORG DB

4000H

10H, 80H, 30H, 50H, 30H, 50H

请问:(A)=( ),(SP)=( ),(51H)=( ),(52H)=( ),PC=( )。

(A)=50H , (SP)=50H , (51H)=30H , (52H)=50H , PC=5030H

4

外部中断程序实例1

硬件电路图如上,要求: 1、 发光二极管D0开始时不亮;

2、 按下S0按键,当外部中断0响应的时候,就点亮D0。

ORG 0000H

LJMP MAIN ;跳向主程序 ORG 0003H

LJMP INT0 ;进入外部中断0的中断服务程序

ORG 0100H

5

本文来源:https://www.bwwdw.com/article/ajy2.html

Top