3.7 试实现下列转换。
(1)[X]原=10111110B,求[X]补 (2)[X]补=11110011B,求[-X]补 (3)[X]补=10111110B,求[X]原 (4)[X]补=10111110B,求[X]反 答案:(1) 1100 0010 (2) 0000 1101 (3) 1100 0010 (4) 1011 110
3.17 8086系统中,设DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H, BP=0100H,VAR的偏移量为0600H,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,计算它们的物理地址。
(1)MOV BX,12 ;目标操作数为寄存器寻址
(2)MOV [BX],12 ;目标操作数为寄存器间址 PA=10300H (3)MOV ES:[SI],AX ;目标操作数为寄存器间址 PA=20200H (4)MOV VAR,8 ;目标操作数为存储器直接寻址 PA=10600H (5)MOV [BX][SI],AX ;目标操作数为基址加变址寻址 PA=10500H
(6)MOV 6[BP][SI],AL ;目标操作数为相对的基址加变址寻址 PA=12306H (7)MOV [1000H],DX ;目标操作数为存储器直接寻址 PA=11000H (8)MOV 6[BX],CX ;目标操作数为寄存器相对寻址 PA=10306H (9)MOV VAR+5,AX ;目标操作数为存储器直接寻址 PA=10605H
3.18 下面这些指令中哪些是正确的?那些是错误的?如果是错误的,请说明原因。 (1)XCHG CS,AX ;错,CS不能参与交换 (2)MOV [BX],[1000] ;错,存储器之不能交换 (3)XCHG BX,IP ;错,IP不能参与交换
(4)PUSH CS ;错,CS不能为PUSH的操作数 (5)POP CS ;错,不能将数据弹到CS中 (6)IN BX,DX ;输入/输出只能通过AL/AX
(7)MOV BYTE[BX],1000 ;1000大于255,不能装入字节单元 (8)MOV CS,[1000] ;CS不能作为目标寄存器
(9)MOV BX,OFFSET VAR[SI] ;OFFSET只能取变量的偏移地址 (10)MOV AX,[SI][DI] ;SI、DI不能成为基址加变址 (11)MOV COUNT[BX][SI],ES:AX ;AX是寄存器,不能加段前缀
3.22 设DX=78C5H,CL=5,CF=1,确定下列各条指令执行后,DX和CF中的值。 (1) SHR DX,1 ;DX=3C62H CF=1 (2) SAR DX,CL ;DX=03C6H CF=0 (3) SHL DX,CL ;DX=18A0H CF=1 (4) ROR DX,CL ;DX=2BC6H CF=0 (5) RCL DX,CL ;DX=18B7H CF=1 (6) RCR DH,1 ;DX=BCC5H CF=0
3.34编写代码,计算a+10b+100c+20d,其中a、b、c、d均为单字节无符号数,结果为16位,存入SUM开始的两单元中。
data segment mov ds,ax add dx,ax ma db 12 mov dh,0 mov ah,0 mb db 21 mov dl,ma mov al,20 mc db 86 mov ah,0 mul md md db 150 mov al,10 add dx,ax SUM dw 0 mul mb mov SUM,dx data ends add dx,ax code ends code segment mov ah,0 end start assume ds:data,cs:code mov al,100 start:mov ax,data mul mc
4.5 画出下列语句中的数据在存储器中的存储情况。 ORG 100H
VARB DB 34,34H,‘GOOD’,2 DUP(1,2 DUP(0)) VARW DW 5678H,‘CD’,$+2,2 DUP(100) VARC EQU 12
4.6 按下列要求,写出各数据定义语句。
DB1为10H个重复的字节数据序列:1,2,5个3,4。 DB2为字符串‘STUDENTS’
DB3为十六进制数序列:12H,ABCDH
用等值语句给符号COUNT赋以DB1数据区所占字节数,该语句写在最后。 解答:
DB1 DB 16 DUP(1,2,5 DUP(3),4) DB2 DB ‘STUDENTS’ DB3 DW 12H,0ABCDH COUNT EQU DB2-DB1
4.8 对于下面的数据定义,各条MOV指令单独执行后,有关寄存器的内容是什么? PREP DB ?
TABA DW 5 DUP(?) TABB DB ‘NEXT’ TABC DD 12345678H
(1)MOV AX,TYPE PREP ;AX=1 (2)MOV AX,TYPE TABA ;AX=2 (3)MOV AX,LENGTH TABA ;AX=5 (4)MOV AX,SIZE TABA ;AX=10 (5)MOV AX,LENGTH TABB ;AX=1 (6)MOV DX,SIZE TABC ;AX=4 5.1 什么是时钟周期、总线周期、指令周期?
答:8086CPU 必须在时钟信号 CLK 控制下工作,时钟信号是一个周期性的脉冲信号,一个时钟脉冲的时间长度称为一个时钟周期,是时钟频率(主频)的倒数,时钟周期是计算机系统中的时间基准。 8086CPU要通过总线才能与外部交换信息,CPU通过总线接口单元与外部交换一次信息,称为一次总线操作,所耗用的时间称为一个总线周期。一个总线周期由若干个时钟周期组成,总线操作的类型不同,总线周期也不同。一个总线周期内完成的数据传输,一般有传送地址和传送数据两个过程。 8086CPU执行一条指令所需要的时间称为指令周期一个指令周期由若干个总线周期组成。
7.4 现有一输入设备,其数据端口地址为FFE0H,状态端口地址为FFE2H,当其D0为1时表明输入数据准备好。试采用查询方式,编程实现从该设备读取100个字节数据并保存到2000H:2000H开始的内存中。 程序为: CODE SEGMENT ASSUME CS:CODE
START: MOV AX,2000H、 MOV DS,AX MOV SI,2000H
MOV CX,100
CONT:MOV DX,0FFE2H CONT1:IN AL,DX TEST AL,01 JZ CONT1
MOV DX,0FFE0H IN AL,DX MOV [SI],AL INC SI LOOP CONT
MOV AH,4CH INT 21H CODE ENDS
END START
一、选择题
1. 指令MOV DX,[BX]的寻址方式是 D 。
(A)立即寻址 (B)直接寻址 (C)寄存器寻址 (D)寄存器间接寻址 2. 若AL的内容为3FH,执行SHL AL,1指令后,AL的内容为 A 。 (A)7EH (B)1FH (C)9FH (D)7FH 3. 属于在工作中需定时刷新的存储器的芯片是 B 。 (A)SRAM (B)DRAM (C)EEPROM (D)EPROM 4. 某EPROM芯片上有19条地址线A0~A18,它的容量为 C 。 (A)128K (B)256K (C)512K (D)1024K 5. 8086/8088CPU的SP寄存器是多少位的寄存器 B 。 (A)8位 (B)16位 (C)24位 (D)32位
6. 在STOSB指令执行的时候,隐含着寄存器的内容作为操作数的偏移地址,该寄存器是
D 。(A)SP (B)BX (C)SI (D)DI
7. 8255工作在方式0时,下面哪种说法不正确 C 。 (A)A口输入无锁存能力 (B)A、B口输出有锁存能力
(C)C口输入有锁存能力 (D)A、B、C三个口输出均有锁存能力 8. 采用DMA方式来实现输入输出是因为它 A 。
(A)速度最快 (B)CPU可不参与操作 (C)实现起来比较容易 (D)能对突发事件做出实时响应
9. 工作在最小模式下,8086/8088CPU芯片中,将地址信号锁存的信号是 C 。
(A)DT/R (B)DEN (C)ALE (D)AEN
10. 在LOOP指令执行的时候,隐含着对计数器减1的操作,该计数器是用寄存器
C 。(A)AX (B)BX (C)CX (D)DX 1. 指令ADD AL,5FH的寻址方式是 B 。
A寄存器,寄存器寻址B寄存器,立即数寻址C存储器,寄存器寻址D寄存器,存储器寻址 2. 对AL寄存器的内容进行清零操作的为 B 。
(A)INC AL (B)AND AL,0 (C)NOT AL (D)XOR AL,0 3. 属于光可擦除可编程的存储器的芯片是 A 。
(A)SRAM (B)DRAM (C)EEPROM (D)EPROM 4. 某RAM芯片上有10条地址线A0~A9,它的容量为 B 。 (A)128K (B)1K (C)512 (D)1024K 5. 8086/8088CPU的SP寄存器是多少位的寄存器 B 。 (A)8位 (B)16位 (C)24位 (D)32位
6. 在STOSB指令执行的时候,隐含着寄存器的内容作为操作数的偏移地址,该寄存器是
D 。(A)SP (B)BX (C)SI (D)DI
7. 8255工作在方式1时,下面哪种说法不正确 D 。 (A)A口输入有锁存能力(B)A、B口输出有锁存能力 (C)B口输入有锁存能力(D)B口输入无锁存能力 8. 8086/8088CPU芯片的地址线为 B 。
(A)16条 (B)20 条 (C) 8条 (D) 24条
9. 在DEBUG命令中,显示 DS:0000 内容的命令为 A 。 (A)D DS:0000 (B)E DS:0000 (C)G DS:0000 (D) T DS:0000 10. 在LOOP指令执行的时候,隐含着对计数器减1的操作,该计数器是用寄存器 C .
(A)AX (B)BX (C)CX (D)DX 1. 字符“A”的ASCII代码是 D 。(A)31H (B)0DH (C)20H (D)41H 2. 对AX寄存器内容进行减1操作的指令为 A 。
(A)DEC AX (B)OR AX,0 (C)XOR AX,AX (D)NOT AX
3. 静态存储器芯片符号是 A . (A)SRAM (B)DRAM(C)EEPROM(D)EPROM 4. 某RAM芯片上有10条地址线A0~A9,它的容量为 C 。 (A)128K (B)1024K (C) 1024 (D)512 5. 8086/8088CPU的DS寄存器是多少位的寄存器 A 。 (A)16位 (B)8位 (C)24位 (D)32位 6. 在DEBUG命令中,显示 DS:0000 内容的命令为 A 。 (A)D DS:0000 (B)E DS:0000 (C)G DS:0000 (D) T DS:0000 7. 关于8255工作方式,下面哪种说法不正确 D 。
(A)A、B口均可在方式0方式下工作 (B)A、B口均可在方式1方式下工作 (C)只有A口可在方式2方式下工作 (D)A、B口均可在方式2方式下工作 8.指令MOV AL,5FH的寻址方式是 A 。 (A)寄存器,立即数寻址 (B)寄存器,寄存器寻址 (C)存储器,立即数寻址 (D)寄存器,存储器寻址
9.在LOOP指令执行的时候,隐含着对计数器减1的操作,该计数器使用寄存器 C 。(A)AX (B)BX (C)CX (D)DX 二、填空题
1、两个无符号数相等,该两数相减后ZF标志= 1 。
2、执行LODSB后,SI的内容较该指令执行前增加1,说明DF= 0 . 3、8086/8088断点中断的向量码是 03H 。 4、利用8253产生对称的方波,应用其工作方式 3 。
5、AX与BX中数值相等,CMP AX,BX指令执行后ZF标志= 1 6、执行LODSW后,SI的内容较该指令执行前增加2,说明DF= 0 . 7、8253共占用 4 个端口地址。
8、8086/8088溢出中断的向量码是 04H 。
9、你所知道的可用于异步串行通信接口芯片是 8250 ,8255共占用 4 个端口地址。 10、8086/8088 NMI的中断类型号是 2 。
11、你所知道的可编程定时器/计数器芯片是 8253 。 四、简单题
1. 说明8086/8088CPU如何判别两个无符号数的大小。 答:将这两个无符号数相减(或比较),若CF=0,则说明被减数大二减数小。若CF=1,则说明减数大而被减数小。若ZF=1,二者相等。
2. 8250芯片上有3条地址线A0~A2,试问该芯片占用多少个接口地址? 答:3条地址线有23=8种编码,∴8250最多占有8个接口地址。
3. 动态存储器DRAM最重要的一个特点—动态的含义是什么? 答:其含义就是要对动态存储器定时进行刷新。
5. 说明如何把由A1.ASM,A2.ASM,A3.ASM三个模块组成的汇编语言源程序,转换成与之对应的一个“*.OBJ”文件,再进一步转换成“*.EXE”文件 动态存储器DRAM最重要的一个特点—动态的含义是什么?
答:先用MASM对三个源文件分别汇编,形成A1.OBJ,A2.OBJ和A3.OBJ 然后运行LINK命令,并对(*.OBJ)文件一栏键入A1.OBJ +A2.OBJ+A3.OBJ ,生成一个*.EXE文件
8.说明如何把由A.ASM,B.ASM二个模块组成的汇编语言源程序,转换成与 之对
相关推荐: