您的当前位置:首页正文

微机原理程序分析题汇总

2022-03-25 来源:步旅网
路漫漫其修远兮,吾将上下而求索 -

1.设CPU各个标志位的初始状态均为0,执行指令:

MOV AX,0 DEC AX

后,请问AX=?,SF=?,CF= ?(3分)

AX=FFFFH或-1 (1分), SF=1(1分), CF=0(1分)

(DEC 变量递减一。MOV AX,0;AX=0;DEC AX;AX=AX-1=-1=FFFFH;SF(符号标志):SF用于反映本次运算结果是正还是负,若某次运算结果的最高位(第8位或第16位)为“1”,则SF=1,否则SF=0;CF(进位标志):保存加法的进位和减法的借位,有进位或借位时CF=1,否则CF=0;结果为-1,所以SF=1,而本题中的借位是溢出借位,故而CF=0)

2.下面程序段的功能是从240H端口读取数据,测试其是否为20H,若不是则将241H端口清0,否则转向NEXT,请将程序补充完整。(5分)

MOV

DX ,240H;端口号放入段寄存器

IN AL,DX;输入数据

CMP AL, 20H;测试是否为20H JZ NEXT;如果不是转到NEXT MOV MOV OUT …… NEXT: ……

1. 定义变量DA1 DB ‘1+2=?’ DA2 DW 2 DUP (0) NUM EQU $-DA1

分析以下指令执行后寄存器的内容,并填在指令后的横线上。(5分)

SUB AX, AX MOV AL,DA1

;AL=31H;DA1=3 DX,241H

AL,0;将端口数据清零 DX,AL

11

路漫漫其修远兮,吾将上下而求索 -

MOV BL,DA2-DA1 MOV CX,NUM L1:RCL AL,1

JNC L2 INC AH L2:LOOP L1

;BL=05H ;CX=09H 程序段执行完后AL=31H,AH=03H

2. 两个压缩BCD数相加,结果保存在内存的SUM单元,如有进位保存在AH中,将下面的程序段补充完整。(3分)

X1 DB 36H X2 DB 78H SUM DB ?, ? MOV AL,X1 MOV BL,X2 ADD AL,BL

DAA;将两个压缩BCD数相加后一定要用DAA JC L1 MOV AH,0 JMP L2 L1:MOV AH,1 L2 :MOV SUM ,AL

MOV [SUM+1], AH

1.设初值为AX=1234H,BX=5678H,DX=0ABCDH,则下面一段程序: MOV CL,4;CL=4

SHL DX,CL;SHL逻辑左移;DX=0BCD0H MOV BL,AH;BX=5612H SHL AX,CL;AX=2340H

SHR BL,CL;SHR逻辑右移;BL=01H

22

路漫漫其修远兮,吾将上下而求索 -

OR DL,BL;OR两者相或;DL=D0H,BL=01H;OR DL,BL;DL=D1H 执行后,请问AX=?,BX=?,DX=?(3分) AX=2340H;BX=5601H;DX=0BCD1H

2.下面程序段的功能是求5到50之和,并将结果存放到SUM单元中,请将程序补充完整。(5分) SUM DW 0

…… MOV CX, 46 MOV BX, 5 MOV AX, 0 L1: ADD AX,BX INC BX LOOP L1 MOV SUM,AX

33

因篇幅问题不能全部显示,请点此查看更多更全内容