接口技术
的是,记住一些特殊功寄存器复位后的主要状态,对于了解单片机的状态,减少应用程序中初始化部分是十分重要的。 A=00H,表明累加器已被清零; PSW=00H,表明寄存器 0 组为工作寄存器组; SP=07H,表明堆栈指令指向片内 RAM07H 字节单元,根据堆栈操作的先加后压法则,第一个被压入 的内容写入到 08H 单元中; P0~P3=FFH,表明已向各端口线写入 1,此时
7642191038D05D13D22D34LD1M6BI7a9b10c11d12e13f15g14M C 1 4 54 37642191038D05D13D22D34LD1M6BI7a9b10c11d12e13f15g14M C 1 4 54 37642191038区别越明显。 1S12S23S34S45S56S67S78S89S910S 1011S 11删除S 12功能S 13清零S
1 LOP1: JC LOP3 CJNE A, 50, LOP2 LOP2: JC LOP4 MOV B, 1 LJMP LOP5 LOP3: MOV B, 2 LJMP LOP5 LOP4: MOV B, 5 LOP5: MUL AB X→ A 暂存 A20? A50? 2→ B 5→ B 1→ B A B→ A A→ FUNC 保存结果 开始 返回 Y N Y N 题图 41 习题 43
+(CF) ADC BX, [DI]。 BX← (BX)+[DI+1][DI]+(CF) ( 3)加 1 指令 INC 格式: INC reg/mem 功能:类似于 C 语言中的 ++操作:对指定的操作数加 1 例: INC AL INC SI INC BYTE PTR[BX+4] 注:本指令不影响 CF 标志。 ( 4)非压缩 BCD 码加法调整指令 AAA(重点 ) AAA 指令的操作:
不可以 ⑹ 外中断 0,外中断 1,定时器 0,串行口中断,定时器 1。 不可以 ⑺ 外中断 0,定时器 1,定时器 0,外中断 1,串行口中断。 可以, MOV IP,09H 1 89C51 各中断源的中断标志是如何产生的。 又是如何清 0 的。 CPU 响应中断时,中断入口地址各是多少。 答:各中断标志的产生和清“ 0”如下: ( 1) 外部中断类 外部中断是由外部原因引起的
MOV SI, OFFSET MSR。 设置 SI MOV DI, OFFSET MSD。 设置 DI MOV CX, LEN NEXT: MOV AL, [SI]。 开始传输数据 第 11 页 MOV ES:[DI], AL INC SI INC DI DEC CX JNZ NEXT PUSH ES POP DS。 将附加段寄存器的段值赋给数据段寄存器 MOV DX, OFFSET MSD
D ADD 指令对 6 个状态标志均产生影响。 带进位的加法 ADC ADC 指令在形式上和功能上与 ADD 类似,只是 相加时还要包括进位标志 CF 的内容 加 1 指令 INC 格式: INC reg/mem 功能:类似于 C 语言中的 ++操作:对指定的操作数加 1 注:本指令不影响 CF 标志。 减法指令 不考虑借位的减法指令 SUB 考虑借位的减法指令 SBB 减 1指令 DEC
;查表得: AL = 12H 输入输出指令( Input and Output) IN 指令: 从数据端口输入数据或从状态端口输入状态字。 OUT 指令:输出数据或命令给指定的 I/O 端口。 直接输入输出指令 格式: IN AL, PORT ; AL (PORT) IN AX, PORT ; AX (PORT+1, PORT) OUT PORT, AL ; (PORT)
存入 5 位十进制数的 ASCll 码,即 E3500(回车) ,并输入 33 3 3 35; ③ G=2020(回车) ,运行以上程序; 15 ④ D350A,显示结果为: 0000: 350A 0l 02 03 04 05 CC ⑤ 反复试几组数,考查程序的正确性。 3.将十六位二进制数转换为 ASCII 码表示的十进制数 十进制 数的值域为 0~ 65535,最大可转换为 5 位十进制数。
H] (4) MOV AX, VAL (5) MOV AX, [BX] (6) MOV AX, ES: [BX] (7) MOV AX, [BP] (8) MOV AX, [SI] (9) MOV AX, [BX+10] (10) MOV AX, VAL[BX] (11) MOV AX, [BX][SI] (12) MOV AX, VAL[BX][SI] 【解答】 (1) MOV AX, 21H