3.18 阅读以下程序,指出它的功能。 MOV CL, 04 SHL AX, CL SHL DX, CL SHR BL, CL MOV BL, AH OR DL, BL 答:把32位二进制代码(DX, AX)联合左移4位。 3.19 已知(DX)=0B9H,(CL)=3,(CF)=1,确定下列指令单独执行以后DX寄存器的值。
(1)指令“SHR DX, 1” 执行之后,(DX)= 005CH (2)指令“SAR DX, CL” 执行之后,(DX)= 0017H (3)指令“SHL DX, CL” 执行之后,(DX)= 05C8H (4)指令“SHL DL, 1” 执行之后,(DX)= 0172H (5)指令“ROR DX, CL” 执行之后,(DX)= 2017H (6)指令“ROL DX, CL” 执行之后,(DX)= 05C8H (7)指令“SAL DH, 1” 执行之后,(DX)= 00B9H (8)指令“RCL DX, CL” 执行之后,(DX)= 05CCH (9)指令“RCR DL, 1” 执行之后,(DX)= 00DCH
3.20 编写程序,从键盘上输入一个0~65535之间的十进制无符 号数,然后用二进制格式输出这个值。例如,键盘输入 “35”,显示器输出“00000000 00100011”。 答:
INCLUDE YLIB.H 号整数 DATA SEGEMNT MOV BX, AX ;转存入BX MESS1 DB 0DH, 0AH, ?Input a uLEA DX, MESS2 nsigned decimal integer numberMOV AH, 09H please : $? INT 21H ;输出提示信息 MESS2 DB 0DH, 0AH, ?The numMOV CX, 16 ;循环计数器置初ber in binary is : $? 值 DATA ENDS AGAIN: SHL BX, 1 ;向左外移一CODE SEGMENT
位,进入CF
ASSUME CS: CODE, DS: DATA
MOV DL, 30H
START:
ADC DL, 0 ;形成一位二进制数
MOV AX, DATA
字的ASCII代码
MOV DS, AX
MOV AH, 2
LEA DX, MESS1
INT 21H ;输出一个二进制数
CALL READDEC ;输入一个无符
字
INT 21H LOOP AGAIN ;循环16次
CODE ENDS CALL CRLF
END START MOV AX, 4C00H
3.21 无符号数变量X用DD定义,编写程序,用十六进制格式输出变量X的值。 答: 386 值 DATA SEGEMNT USE16 LEA BX, HEXTAB ;换码表首地址X DD 36895471 ;一个32B长整装入BX 数 AGAIN: ROL ESI, 4 ;把最高4位MESS DB 0DH, 0AH, ?The X in he移到最低4位上 xdecimal is : $? MOV AX, SI ;低8位转入AL HEXTAB DB ?0123456789ABCDEAND AX, 0004H ;清除高4位 F? XLAT ;转换成十六进制数字的DATA ENDS ASCII代码 CODE SEGMENT USE16 MOV DL, AL ASSUME CS: CODE, DS: DATA MOV AH, 2 START:
INT 21H ;输出一个十六进制数
MOV AX, DATA
字
MOV DS, AX
LOOP AGAIN ;循环16次
LEA DX, MESS
MOV AX, 4C00H
MOV AH, 09H
INT 21H
INT 21H ;输出前导信息
CODE ENDS
MOV ESI, X ;将X存入ESI
END START
MOV CX, 8 ;循环计数器置初
3.22 编写指令序列,把AX中的16b二进制分为4组,每组4b,分别置入AL,BL,CL,DL中。
答: MOV DX, AX ;最低4位直4位 接进入DX MOV BX, AX ;送入BL MOV CX, 4 ROL AX, CL ;第3组4位移入最ROL AX, CL ;最高4位移入最低低4位 4位 MOV CX, AX ;送入CL
PUSH AX ;压入堆栈保存(准POP AX ;从堆栈中弹出原最高备送入AL) 4位 ROL AX, CL ;次高4位移入最低AND AX, 000FH ;清除高12位
AND BX, 000FH ;清除高12位 AND DX, 000FH ;清除高12位 AND CX, 000FH ;清除高12位
1、I/O设备与CPU之间交换信息,其状态信息是通过 _ B___总线传送给CPU的。
A.地址 B.数据 C.控制 D.三者均可 2.8086/8088微处理器可寻址的最大I/O空间为( C ) A.8KB B.32KB C.64KB D.1MB
3.CPU与I/O设备交换信息,无需要传送( D )信息。 A.数据 B.状态 C.控制 D.地址
4.I/O单独编址方式下,从端口输入数据可使用( C )。 A.MOV B.OUT C.IN D.XCHG
5.CPU对外部设备的访问实质是对( B )的访问。 A.接口 B.I/O端口 C.I/O设备 D.接口电路
6.8086/8088对10H端口进行写操作,正确指令是( A )。 A.OUT 10H,AL B.OUT [10H],AL C.OUT AL,10H D.OUT AL,[10H]
7.设计输入输出接口电路时,输入接口电路的关键器件是( 三态缓冲器 );输出接口电路的关键器件是( 锁存器 )。 8.可用作简单输入接口的电路是( D )。
A.译码器 B.锁存器 C.方向器 D.三态缓冲器
9.判断:接口的基本功能是输入锁存,输出缓冲。 × 10.I/O端口的独立编址方式特点有( B ) 。
A.地址码较长 B.需用专用I/O指令 C.只需要存储器存取指令 D.译码电路简单
11.I/O端口的编址方式一般有( I/O独立编址 )和( 统一编址 )两种。
12.从硬件角度看,采用硬件最少的数据传送方式是( B ) A.DMA控制 B.无条件传送 C.查询传送 D.中断传送
13.DMA方式是主机与外设之间传送数据的一种方式,他是在( DMAC )的控制下,( 存储器 )与( 外部设备 )之间直接进行数据交换。
14.从输入设备向内存输入数据时,若数据不需要经过CPU,其I/O数据传送控制方式是( C )。
A.程序查询方式 B.中断方式
C.DMA方式 D.直接传送方式
15.主机与外设之间有三种传送方式,中断方式的主要优点是
( D ).
A.接口电路简单、经济需要硬件少 B.传送速度快 C.CPU时间利用率最高 D.能实时响应I/O设备请求 16.写出主机与外围设备之间数据交换的4种方式:
( 无条件传送 ),( 查询式传送 ),( 中断方式传送 )和( 直接存储器存取方式 )。
17.微机系统中,主机与外设之间交换信息通常采用 ( 程序 ),( 中断 )和( DMA )方式。
18.8086CPU工作在DMA方式有关的两个引脚是( HOLD )和( HLDA )
19.一个接口电路的基本功能包括( 设备选择功能 ),(信息传输功能),(数据格式转换功能 )。
20.8086CPU工作在DMA方式时,其AD0-15引脚处于( 高阻状态 )
第四章
4.1 什么是“三种基本结构”?解释“基本”两个字在其中的含义。
答:三种基本结构指:顺序结构,选择结构、循环结构。
使用这3种结构,可以编制出任何所需要的程序,因此冠以“基本”结构。
4.2 什么叫做“控制转移指令”?它和数据传送、运算指令有什么区别?它是怎样实现它的功能的?
答:控制转移指令是可以改变指令执行顺序的指令。数据传送、运算指令总是顺序执行的,
而控制转移指令通过改变IP和/或CS寄存器的值,改变了程序指令的执行顺序。
4.3 指令“JMP DI”和“JMP WOR PTR [DI]”作用有什么不同?请说明。 答:上述两条指令都是段内近转移指令,但是偏移地址的来源不同。指令“JMP DI”执 行时,新的偏移地址在DI寄存器内,“JMP WORD PTR [DI]”时,目的偏移地址在存储单元中,该存储单元的地址在DS: DI中。
4.4 已知(AX)= 836BH,X分别取下列值,执行“CMP AX,X”后,标志位ZF、CF、OF、SF各是什么?
(1)X=3000H (2)X=8000H (3)X=7FFFFH(4)X=0FFFFH (5)X=0
答:上述指令执行后,标志位ZF、CF、OF、SF 的状态分别是: (1) ZCOS=0010 (2) ZCOS=0000 (3) ZCOS=0010 (4) ZCOS=0101 (5) ZCOS=0001
4.5 已知(AX)= 836BH,X分别取下列值,执行“TEST AX,X”后,标志位ZF、CF、OF、SF各是什么? (1)X=0001H (2)X=8000H (3)X=0007H (4)X=0FFFFH (5)X=0
答:上述指令执行后,标志位ZF、CF、OF、SF 的状态分别是: (1) ZCOS=0000 (2) ZCOS=0001 (3) ZCOS=0000 (4) ZCOS=0001 (5) ZCOS=1000
4.6 测试名为X的一个字节,如果X的第1,3位均为1,转移到L1,如果只有一位为1,转移到L2,如果两位全为0,转移到L3。写出对应的指令序列。
CMP AL, 0000 1010B 答: MOV AL, X
JE L1 AND AL, 0000 1010B
JMP L2 JZ L3
4.7 假设X和X+2字单元存放有双精度数P,Y和Y+2字单元存放有双精度数Q,下面程序完成了什么工作? MOV DX, X+2 CMP AX, Y MOV AX, X JBE L2 ADD AX, X L1: MOV Z, 1 ADC DX, X+2 JMP SHORT EXIT CMP DX, Y+2 L2: MOV Z, 2 JL L2 EXIT: …… JG L1
答:程序根据2P与Q的大小,确定Z的值。如果2P≤Q,则Z=2 如果2P>Q, 则Z=1
4.8 编写指令序列,将AX和BX中较大的绝对值存入AX,较小的绝对值存入BX。
NEG BX 答: AND AX, AX
SKIP2: CMP AX, BX JGE SKIP1
JGE SKIP3 NEG AX
XCHG AX, BX SKIP1: AND BX, BX
SKIP3: …… JGE SKIP2
4.9 编写指令序列,比较AX、BX中的数的绝对值,绝对值较大的数存入AX,绝对值较小的数存入BX。