接口与汇编程序设计作业答案DOC知识讲解文档格式.docx
- 文档编号:20924254
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:19
- 大小:102.75KB
接口与汇编程序设计作业答案DOC知识讲解文档格式.docx
《接口与汇编程序设计作业答案DOC知识讲解文档格式.docx》由会员分享,可在线阅读,更多相关《接口与汇编程序设计作业答案DOC知识讲解文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
0110111000011000
01E3H-01E3H
0000000111100011
+1111111000011101(-01E3H的补码)
10000000000000000
ZF=1;
进位表示最高位产生进位。
溢出表示超出数的表示范围。
OF=Cn
Cn-1
8.什么是逻辑地址?
什么是物理地址?
它们之间有什么联系?
各用在何处?
逻辑地址:
产生实际地址的两个地址分量:
首地址和偏移地址。
物理地址:
内存单元地址。
用户在编写程序时只使用逻辑地址。
程序装到内存中使用物理地址。
物理地址可以通过逻辑地址求得。
9.设现行数据段位于存储器的B0000H到BFFFFH存储单元,DS段寄存器内容为多少?
DS=B000H
11.8086/8088微处理器工作在最小模式和最大模式时的主要特点是什么?
有何区别?
最小模式只有一个CPU不需要总线控制器。
最大模式有多个微处理器,必须要总线控制器来对总线控制权进行分配。
引脚MN/MX=1工作在最小模式。
MN/MX=0工作在最大模式。
13.80486地址总线宽度为多少?
数据总线宽度为多少?
80486地址总线宽度为32位(分成4个块,每个块为8位字长,块有A1,A0选择)有数据总线宽度为32位。
14.现有6个字节的数据分别为11H,22H,33H,44H,55H,66H,已知它们在存储器中的物理地址为400A5H~400AAH,若当前的(DS)=4002H,请说明它们的偏移地址值。
如果从存储器中读出这些数据,至少需要访问几次存储器,各读出哪些数据?
解:
∵物理地址=(DS)×
16+偏移地址,
∴偏移地址=物理地址-(DS)×
16=400A5H~400AAH-40020H=85H~8AH
至少需要访问三次存储器,每次读出一个字,即2211H,4433H,6655H。
这六个数在存储器中的存放位置如图所示。
习题2(教材P105)
1.已知DS=2000H,BX=0100H,SI=0002H,存储单元[20100H]~[20103H]依次存放12245678H,[21200H]~[21203H]依次存放2A4CB765H,说明下列每条指令执行后AX寄存器的内容。
(1)MOVAX,1200H
AX=1200H
(3)MOVAX,[1200H]
物理地址=DS×
16+1200H=20000H+1200H=21200H,所以AX=4C2AH
(5)MOVAX,[BX+1100H]
16+BX+1100H=20000H+0100H+1100H=21200H,所以AX=4C2AH
(7)MOVAX,[BX][SI+1100H]
16+BX+SI+1100H=20000H+0100H+0002H+1100H=21202H,所以AX=65B7H
(2)MOVAX,BX
AX=0100H
(4)MOVAX,[BX]
16+BX=20000H+0100H=20100H,所以AX=2412H
(6)MOVAX,[BX][SI]
16+BX+SI=20000H+0100H+0002H=20102H,所以AX=7856H
2.指出下列指令错误
(1)MOVCX,DL
数据类型不匹配,CX是16位,DL是8位。
(2)MOVIP,AX
指令指针不能直接修改。
(3)MOVES,1234H
段地址寄存器不能直接置数。
(4)MOVES,DS
段地址DS不能做源操作数。
(5)MOVAL,300
300大于255,AL是8位的,最多只能存255
(6)MOV[SP],AX
SP不能做间接寻址寄存器。
(7)MOVAX,BX+DI
基址变址寻址必须打[]。
(8)MOV20H,AH
立即数不能做目的地址单元。
3.已知数字0~9对应的格雷码依次为:
18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H,它存放在于以TABEL为首地址(设为200H)的连续区域中。
对如下程序段的每条指令加上注释,说明每条指令的功能和执行结果。
LEABX,TABLE;
取表的首地址送BX,执行后(BX)=200H
MOVAL,8;
立即数8送AL,执行后,(AL)=8
XLAT;
查表,将表首地址+8((BX)+(AL))所对应单元内容送AL,
;
执行后,(AL)=12H(8所对应的格雷码)
4.什么是堆栈,它的工作原则是什么,它的基本操作有哪两个,对应哪两种指令?
堆栈是在内存中开的一个特殊的数据区,堆顶有堆栈指针SP与SS共同决定。
原则是:
先进后出,
两个操作:
入栈、出栈,对应指令:
PUSH(入栈)、POP(出栈)。
5.已知SS=FFA0H,SP=00B0H,画图说明执行下列指令序列时,堆栈区和SP的内容如何变化?
MOVAX,8075H
PUSHAX
MOVAX,0F79H
POPBX
POP[BX]
8.请分别用一条汇编语言指令完成如下功能:
(1)把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。
ADDDX,BX
(2)用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送AL中。
ADDAL,[BX+SI]或ADDAL,[BX][SI]
(3)用寄存器BX和02BH的寄存器相对寻址方式,把存储器的一个字和CX寄存器的内容相加,并把结果送回存储器中。
ADD[BX+02BH],CX或ADD02BH[BX],CX
(4)把数0A0H与AL寄存器内容相加,并把结果送AL中。
ADDAL,0A0H
10.指出下列指令错误
(1)XCHG[SI],30H
立即数不能作为单元地址来保存数据,所以交换指令中的两个操作数必须是地址操作数。
(2)POPCS
CS不能作为寻址寄存器使用
(3)SUB[SI],[DI]
算术运算指令中的两个操作数不能同时都在内存中
(4)PUSHAH
PUSH指令中的操作数必须是16位操作数,AH是8位
(5)ADCAX,DS
DS不能做源操作数,
(6)OUTDX,AH
只能使用AL(当端口数据位是8位)或AX(端口数据位是16位)与端口交换数据
(7)INAL3FCH
端口地址大于255时,必须有DX寄存器间接寻址。
20.假设DS=2000H,BX=1256H,SI=528FH,位移量TABLE=20A1H,[232F7H]=3280H,[264E5H]=2450H,试问执行下列段内间接转移指令后,转移的目的地址是什么?
(1)JMPBX
(2)JMPTABLE[BX]
(3)JMP[BX][SI]
(1)JMPBX,目标地址的偏移量在BX中,所以转移的目的地址是CS:
1256H(也可以直接写成有效地址IP=1256H)。
(2)JMPTABLE[BX],目标地址的偏移量在存储器单元中,该存储器单元有效地址为(BX)+TABLE中,所对应的物理地址=DS×
16+(BX)+TABLE=20000H+1256H+20A1H=232F7H,该单元存放的内容为3280H,所以JMPTABLE[BX]转移的目的地址是CS:
3280H(也可以直接写成有效地址IP=3280H)
(3)JMP[BX][SI]目标地址的偏移量在存储器单元中,该存储器单元有效地址为(BX)+(SI)中,所对应的物理地址=DS×
16+(BX)+(SI)=20000H+1256H+528FH=264E5H,该单元存放的内容为4500H,所以JMPTABLE[BX]转移的目的地址是CS:
4500H(可以直接写成有效地址IP=4500H)。
23.假设AX和SI存放的是有符号数,DX和DI存放的是无符号数,请用比较指令和条件转移指令实现以下判断:
(1)若DX>DI,转到ABOVE执行;
(2)若AX>SI,转到GREATER执行;
(3)若CX=0,转到ZERO执行;
(4)若AX-SI产生溢出,转到OVERFLOW执行;
(5)若SI≤AX,转到LESS_EQ执行;
(6)若DI≤DX,转到BELOW_EQ执行。
(1)CMPDX,DI
JAABOVE
(2)CMPAX,SI
JGGREATER
(3)CMPCX,0
JEZERO
(4)CMPAX,SI
JOOVERFLOW
(5)CMPSI,AX
JLELESS_EQ
(6)CMPDI,DX
JBEBELOW_EQ
选做题
14题(P107).已知数据段500H~600H中存放了一字符串,说明下列程序段执行后的结果。
MOVSI,600H
MOVDI,601H
MOVAX,DS
MOVES,AX
MOVCX,256
STD
REPMOVSB
24题(P108).有一个首地址为ARRAY的20个字的数组,说明下列程序的功能。
MOVCX,20
MOVAX,0
MOVSI,AX
SUM_LOOP:
ADDAX,ARRAY[SI]
ADDSI,2
LOOPSUM_LOOP
MOVETOTAL,AX
25题(P109).按照下列要求,编写相应的程序段:
⑴起始地址为STRING的主存单元中存放有一个字符串(长度大于6),把该字符串的第一和第六字符(字节变量)传送给DX,
MOVSI,0
MOVDL,STRING[SI]
MOVDH,STRING[SI+5]
⑵从主存BUFFER开始的4个字节中保存了4个非压缩的BCD码,现按低(高)地址对低(高)位的原则将它们合并到DX中
MOVAL,BUFFER[SI]
ANDAL,0FH
MOVAH,BUFFER[SI+1]
ANDAH,0FH
MOVCL,4
SHLAH,CL
ADDAL,AH
MOVDL,AL
MOVAL,BUFFER[SI+2]
MOVAH,BUFFER[SI+3]
MOVDH,AL
⑶编写一个程序段,在DX高4位全为0时,使AX=0;
否则使AX=-1
ANDDX,0F000H
JZZERO
MOVAX0FFFFH;
[-1]补码=FFFFH
JMPJEND
ZERO:
MOVAX,0
JEND:
HALT
26题(P109).按下述要求,分别给出3种方法,每种方法只用一条指令。
⑴使CF=0
方法一:
CLC
方法二:
ADDAL,0
方法三:
SUBAL,0
②使AX=0
MOVAX,0000H
ANDAX,0000H
SUBAX,AX
③同时使AX=0和CF=0
XORAX,AX
习题3(教材P182)
1.伪指令语句与硬指令语句的本质区别是什么?
伪指令语句有什么主要作用?
区别:
伪指令语句是汇编程序可以识别和解释语句(CPU不能直接执行),硬指令语句是CPU可以执行的语句。
伪指令语句主要作用是为汇编程序提供解释说明,它仅仅是在汇编过程中告诉汇编程序如果进行汇编。
2.什么是标识符?
汇编程序中标识符怎样组成?
是用户自己定义的符号名。
在汇编程序中标识符有两种:
标号标识符,用在指令语句中,后面跟冒号,表示程序入口的逻辑地址。
符号(或名字)标识符,用在伪指令语句中,后面不跟冒号,通常是定义一个变量,或说明变量类型。
标识符一般不超31个字符,数字及常规符号($、@、?
等)不能打头,也不能使用保留字。
标识不区分大小写。
4.汇编语句有哪两种,每个语句有哪4部分组成?
指令语句(又称执行语句)和伪指令语句(又称说明性语句)。
指令语句4部分包括,①标号:
、②硬指令助记符、③操作数、④;
注释。
伪指令语句4部分包括,①符号名、②伪指令助记符、③参数、④;
5.汇编程序开发有哪4个步骤?
分别利用什么程序完成,产生什么输出文件?
①编辑。
使用文本编辑器。
产生汇编源程序文件:
文件名.ASM。
源文件是文本文件。
②汇编。
使用汇编程序,如MASM或ML,排除程序中的语法错误。
产生目标文件:
文件名.OBJ。
目标文件是二进制文件,是不能执行的文件。
③连接。
使用LINK。
产生可执行文件:
文件名.EXE.
④调试。
使用DEBUG。
本身不产生文件,是对连接产生的可执行进行调试,排除程序中的算法错误,保证可执行文件的正确性。
7.假设MYWORD是一个字变量,MYBYTE1和MYBYTE2是两个字节变量,指出下列语句中的错误原因。
(1)MOVBYTEPTR[BX],1000
数据类型不匹配,目的地址单元是字节单元,1000大于255。
无法存放。
(2)MOVBX,OFFSET[SI]
OFFSET后只能跟标识符。
(3)CMPMYBYTE1,MYBYTE2
CMP的两个操作数不能同时在存储器中。
(4)MOVAL,MYBYTE1+MYBYTE2
运算符只能对常数进行操作,不能对变量进行操作。
(5)SUBAL,MYWORD
数据类型不匹配,AL是8位的,MYWORD是16位变量。
(6)JNZMYWORD
MYWORD是变量,其指的单元中存放的是操作数,不能用做跳转入口。
8.OPRL是个常数,请问下列语句中两个AND操作有什么不同?
ANDAL,OPRLAND0FEH
第一个AND是指令语句,在程序运行时才执行,第二个AND是逻辑运算符,是在汇编时就对两个常量完成的关系运算。
22题(P184).编写程序完成两个已知双精度(4B)A和B相加,并将结果存入双精度变量单元SUM中(不考虑溢出)
ADD?
BDD?
SUMDD?
MOVAX,WORDPTRA
ADDAX,WORDPTRB
MOVWORDPTRSUMAX
MOVAX,WORDPTRA+2
ADDCAX,WORDPTRB+2
MOVWORDPTRSUM+2AX
22题(P184).编写程序完成12H,45H,0F3H6AF,20H,0FEH,90H,0C8H,57H和34H共10字节数据之和,并将结果存入字节变量SUM中(不考虑溢出)。
DAT1DB12H,45H,0F3H6AF,20H,0FEH,90H,0C8H,57H,34H
MOVCX,10
MOVAL,0
LEASI,DAT1
ADDAL,[SI]
INCSI
MOVESUM,AL
25题(P185).编写一个程序段,将AX寄存器中的16位数连续4位分成一组,共4组,然后把这4组数分别放在AL、BL、CL和DL中。
MOVBX,AX
SHRBL,CL
ANDBL,0FH
MOVDL,AH
SHRDL,CL
ANDDL,0FH
MOVCL,AH
ANDCL,0FH
27题(P185).已知用于LED数码显示的代码表位为:
LEDTABLEDB0C0H,0FCH,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,
83H,0CCH,0C1H,86H,8EH
它依次表示0~9,A~F这16个数码的显示代码。
现编写一个程序实现将LEDNUM中的一个数字(0~9,A~F)转换成对应的LED显示码。
LEABXLEDTABLE
MOVAL,LEDNUM
XLAT
26题(P185).编写一个程序,把从键盘输入的一个小写字母转换成大写字母显示出来
MOVAH,08H;
不带显示的键盘输入(字符以ASCII码存AL中)
INT21H
ANDAL,11011111
MOVDL,AL;
将要显示字符的ASCII码DL
MOVAH,02H;
调显示
32题(P185).不用串操作指令,求主存0040H:
0开始的一个64KB物理段中共有多少空格?
编写程序实现。
MOVAX,0040H
MOVDS,AX
MOVSI,0
MOVCX,0
MOVDX,0
L0:
MOVAL,[SI]
INCSI
CMPAL,20H;
20H空格的ASCII码
JNZL1
INCDX
L1:
LOOPL0
HLT
习题4(教材P280)
15.8255A有哪几种工作方式,对这些工作方式有什么规定?
8255A有三种工作方式。
分别是方式0(基本的输入输出方式);
方式1(选通的输入输出方式);
方式2(双向传输方式)。
方式0:
不需要应答联络信号。
A、B、C口都可以工作在方式0。
方式1:
选通的输入输出方式,只有A、B端口可以工作在方式1,C端口作为A、B端口的应答信号。
而且是单向的,作为输入端口,就不能做输出端口,作为输出端口就不能做输入端口。
方式2:
双向传输方式,只有A端口可以工作在方式2,C端口做为A端口输入输出时的应答信号,可以工作在输入,也可以工作在输出。
16.假设8255A端口地址为00C0~00C6H,要求:
(1)对8255A设置工作方式,A端口工作在方式1,输入;
B端口工作在方式0,输出;
端口C的4为配合端口A工作,端口C的低4为方式0,输入。
(2)用置0∕置1,直接对PC6置1,对PC4置0
端口地址0000000011000000~0000000011000110。
说明A口地址为00C0H,B口地址为00C2H,C口地址为00C4H,控制字地址为00C6H。
(1)控制字为:
1011X001B,即0B1H(X取0)
MOVAL,0B1H
MOVDX,00C6H
OUTDX,AL
(2)直接对PC6置1时的控制字为:
0XXX1101B,即0DH
MOVAL,0DH
直接对PC4置0时的控制字为:
0XXX1000B,即08H
MOVAL,08H
17.使用8255A作为开关和LED指示灯的接口。
要求8255A的A口连接8个开关,B口连接8个LED(发光二极管),用作指示灯,将A口的开关状态读入,然后送至B口控制指示灯亮、灭。
试画出接口电路设计图,并编写程序实现。
根据要求,设计电路如图所示。
用PA7引脚上的开关控制PB7上的LED,PA0引脚上的开关控制PB0上的LED。
开关闭合输入低电平,开关打开输入高电平。
高电平指示灯亮。
A端口地址为8000H,B端口地址为8001H,C端口地址为8002H,控制字寄存器地址为8003H(假设未使用的地址线都取0)。
控制字:
10010000B(C口工作在输出),即90H
参考程序:
MOVAL,90H
MOVDX,8003H
OUTDX,AL
LOOP:
MOVDX,8000H
INAL,DX
MOVDX,8001H
JMPLOOP
3.若8253芯片的接口地址为D0D0H~D0D3H,时钟信号为2MHz,现利用计数器0、1、2分别产生周期为10us的方波,每隔1ms和10ms(1s)产生一个负脉冲,试画出系统的连线图。
并写出初始化程序。
定时器0的计数初值=10×
10-6×
2×
106=20,工作在方式3。
00010111(17H)
定时器1的计数初值=1×
10-3×
106=2000,工作在方式2。
01110101(75H)
定时器2的计数初值=10×
106=20000=4E20H,工作在方式2。
10110100(B4H)。
注意:
1s定时器2的计数初值=2×
106=2000000(超过16位计数器计数范围65536,采样2级计数,有计数1的输出OUT1作为计数器2的CLK2的计数脉冲。
所以计数器2的计数常数1000
初始化程序:
MOVAL,17H
MOVDX,0D0D3H
MOVAL,20
MOVDX,0D0D0H
MOVAL,75H
OUTDX,AL
MOVAX,00H
MOVDX,0D0D1H
OUTDX,AL;
先送计数值低位
MOVAL,20H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 接口 汇编程序 设计 作业 答案 DOC 知识 讲解