微机原理程序题

1、

AL=55H,BL=55H,CL=55H
55H = 0101 0101

1.XOR AL,0FH
AL与0FH做异或运算即
0101 0101和
0000 1111做异或运算
结果AL=0101 1010

2.SHL AL,1
AL逻辑左移1位,即二进制位左移1位,右边补零
结果AL=1011 0100

3.AND BL,0FH
BL与0FH做与运算即
0101 0101和
0000 1111做与运算
结果BL=0000 0101

4.TEST BL,0F0H
BL与0FH做与运算,但是最后结果不会赋给BL,只会对PSW寄存器产生影响,所以这一步不会让BL产生任何变化

5.OR CL,0FH
CL与0FH做或运算即
0101 0101和
0000 1111做或运算
结果CL=0101 1111

6.INC CL
CL自加1
结果CL=0110 0000

7.HLT
停止程序

所以执行完后,
AL=1011 0100即B4H
BL=0000 0101即05H
CL=0110 0000即60H

2、

1.MOV SP,2000H
SP为栈顶的偏移地址,设置为2000H

2.MOV AX,3000H
为AX赋值为3000H

3.MOV BX,1234H
为BX赋值为1234H

在这里插入图片描述

4.PUSH BX
压入BX,SP-2

在这里插入图片描述

5.PUSH AX
压入AX,SP-2

在这里插入图片描述

6.POP BX
弹出栈顶数据并赋值给BX,SP+2

在这里插入图片描述

7.HLT
停止程序

分析见图
所以执行完后
SP=1FFEH
AX=3000H
BX=3000H

3、

    MOV AH,0
    MOV CX,8
AGAIN:
    SHL AL,1
    JC ADD1
    JMP NEXT
ADD1:
    INC AH
NEXT:
    LOOP AGAIN
    HLT

1.分析功能

  1. MOV AH,0,MOV CX,8都是赋值操作
  2. AGAIN部分做了
    1. AL逻辑左移1位,最高位移入CF,最低位补零
    2. JC指令,当CF=1时跳转到ADD1
    3. JMP指令,跳转到NEXT
  3. ADD1只做了AH自增1这件事
  4. NEXT只做了LOOP AGAIN这件事,LOOP指令,CX-1,如果CX不等于0则跳转到AGAIN
  • 首先对循环条件进行分析,由于CX=8,所以LOOP会执行7次,加上第一次运行,也就是整个程序只会运行8次
  • 然后依次看跳转条件,JC ADD1,就是判断CF是否为1,在之前对CF进行改变的程序只有SHL AL,1,也就是CF会被置为执行此操作前AL的最高位,当为1时通过JC ADD1跳转到ADD1,然后AH+1,若为1则不进入ADD1,也就是AH不变,然后直接跳转到NEXT进行下一次循环
  • 所以可以判断出,程序就是在统计AL寄存器中1的个数,然后存入AH中

2.执行程序

执行前AL=36H,即0011 0110
根据之前的分析,只需要把1的个数统计出来然后存入AH中,切记AL在逻辑左移8次后变为了0000
所以AX=0000 01000 0000 0000,即40H

4、

  1. 功能分析
  • 判断BL的值与0的关系,去对DL设相应的值
  • 思路:使用CMP 去比较两个数的大小,然后配合跳转给DL设值
    CMP BL,0
    JZ ZERO
    JS NEGATIVE
    JMP POSITIVE
ZERO:
    MOV DL,0
    JMP OVER
POSITIVE:
    MOV DL,1
    JMP OVER
NEGATIVE:
    MOV DL,-1
    JMP OVER
OVER:
    HLT

简写

    MOV DL,0
    CMP BL,0
    JZ OVER
    JS NEGATIVE
    INC DL
    JMP OVER
NEGATIVE:
    DEC DL
OVER:
    HLT

1、

1.

计数初值为 1MHZ/100HZ = 10000 = 2710H

2.

控制字为0011 0110

3.

MOV AL,36H
OUT 43H,AL
MOV AL,10H
OUT 40H,AL
MOV AL,27H
OUT 40H,AL

2、

1.

控制字为1001 0000

2.

INIT:
    MOV AL,90H
    OUT 63H,AL
START:
    MOV AL,80H
    OUT 61H,AL
    JMP MAIN
ERROR:
    MOV AL,01H
    OUT 62H,AL
MAIN:
    IN AL,60H
    XOR AL,FFH
    JNZ ERROR
    MOV AL,00H
    OUT 62H,AL
    JMP MAIN
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
微机原理与接口技术一 一 填空(10分 每2分) 1 ( )就是把一个字符的各数据位用几条线同时进行传输。 2 当串行接口电路的发送时钟频率为19200HZ,波特率因子的值为16,则发送器的波特率是( )波特。 3 ISA总线是针对80286CPU设计的,具有16位数据宽度,地址总线24条,可直接寻址能力达到( )MB. 4 8253每个计数器具有6种工作方式,分别为计数结束中断、可重复触发的单稳态触发器、( )、方波发生器、软件触发的选通信号发生器、硬件触发选通方式。 5 中断过程可分为中断请求、中断排队、( )、中断处理和中断返回。 二 判断(10分 每1分) 1 在数据传输中,微型计算机与外设之间往来的信号分为两类:控制信号和状态信号( ) 2 查询传送方式实际上是程序循环等待方式( ) 3 可编程并行接口芯片8255A 的初始化命令字有工作方式控制字和对B 口的置位/复位字( ) 4 串行同步通信协议的数据格式包括1位起始位,8位数据位,1位校验位和1位停止位( ) 5 D/A转换器的作用是将二进制的数字量转换为相应的模拟量输出( ) 6 串行I/O接口的基本功能之一是进行串行和并行数据流之间的转换( ) 7 标志寄存器中的中断标志位是控制非屏蔽中断的标志( ) 8 主要存放操作数的偏移地址的16位寄存器有BX,BP,SI,DI( ) 9 80386突出的特点是可实现段式、页式、或段页式管理( ) 10 地址总线用于传送CPU发出的控制信号、时序信号和状态信号( ) 三 名词解释(15分每3分)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值