版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理与接口技术(第二版)龚尚福复习题解析和实验指导微机原理与接口技术(第二版)龚尚福复习题解析和实验指导/微机原理与接口技术(第二版)龚尚福复习题解析和实验指导微机原理与接口技术部分答案2.28086微办理器由哪几部分组成?各部分的功能是什么?16355【解】:按功能可分为两部分:总线接口单元BIU(BusInterfaceUnit)和执行单元EU(ExecutionUnit)。总线接口单元BIU是8086CPU在储藏器和I/O设备之间的接口部件,负责对全部引脚的操作,即8086对储藏器和I/O设备的全部操作都是由BIU达成的。全部对外面总线的操作都必定有正确的地址和合适的控制信号,BIU中的各部件主若是围绕这个目标设计的。它供应了16位双向数据总线、20位地址总线和若干条控制总线。其详尽任务是:负责从存单元中预取指令,并将它们送到指令队列缓冲器暂存。CPU执行指令时,总线接口单元要配合执行单元,从指定的存单元或I/O端口中取出数据传达给执行单元,也许把执行单元的办理结果传达到指定的存单元或I/O端口中。执行单元EU中包含1个16位的运算器ALU、8个16位的存放器、1个16位标志存放器FR、1个运算暂存器和执行单元的控制电路。这个单元进行全部指令的讲解和执行,同时管理上述有关的存放器。EU对指令的执行是从取指令操作码开始的,它从总线接口单元的指令队列缓冲器中每次取一个字节。若是指令队列缓冲器中是空的,那么EU就要等待BIU经过外面总线从储藏器中获取指令并送到EU,经过译码电路解析,发出相应控制命令,控制ALU数据总线中数据的流向。2.3简述8086CPU的存放器组织。【解】:(1)通用存放器:通用存放器又称数据存放器,既可作为16位数据存放器使用,也可作为两个8位数据存放器使用。当用作16位时,称为AX、BX、CX、DX。当用作8位时,AH、BH、CH、DH存放高字节,AL、BL、CL、DL存放低字节,而且可独立寻址。这样,4个16位存放器即可看作8个8位存放器来使用。(2)段存放器:段存放器共有4个CS、DS、SS、ES。代码段存放器CS表示当前使用的指令代码能够从该段存放器指定的储藏器段中获取,相应的偏移值则由IP供应;货仓段存放器SS指定当前货仓的初步地址;数据段存放器DS指示当前程序使用的数据所存放段的初步地址;附加段存放器ES则指出当前程序使用附加段地址的初步地址,该段一般用来存放原始数据或运算结果。(3)指针和变址存放器:货仓指针SP用以指出在货仓段中当前栈顶的地址。入栈(PUSH)和出栈(POP)指令由SP给出栈顶的偏移地址。基址指针BP指出要办理的数据在货仓段中的基地址,故称为基址指针存放器。变址存放器SI和DI用来存放当前数据段中某个单元的偏移量。(4)指令指针与标志存放器:指令指针IP的功能跟Z80CPU中的程序计数器PC的功能近似。正常运转时,IP中存放的是BIU要取的下一条指令的偏移地址。它拥有自动加1功能,每当执行一次取指令操作时,它将自动加1,使它指向要取的下一存单元,每取一个字节后IP容加1,而取一个字后IP容则加2。某些指令可使IP值改变,某些指令还可使IP值压入货仓或从货仓中弹出。标志存放器FLAGS是16位的存放器,8086共使用了9个有效位,标志存放器格式如图2.5所示。其中的6位是状态标志位,3位为控制标志位。状态标志位是当一些指令执行后,表征所产生数据的一些特色。而控制标志位则能够由程序写入,以达到控制办理机状态或程序执行方式的表征。2.4试述8086CPU标志存放器各位的含义与作用。【解】:(1)6个状态标志位的功能分别表达以下:CF(CarryFlag)——进位标志位。当执行一个加法(或减法)运算,使最高位产生进位(或借位)时,CF为1;否则为0。PF(ParityFlag)——奇偶标志位。该标志位反响运算结果中1的个数是偶数还是奇数。当指令执行结果的低8位中含有偶数个1时,PF=1;否则PF=0。AF(AuxiliarycarryFlag)——辅助进位标志位。当执行一个加法(或减法)运算,使结果的低4位向高4位有进位(或借位)时,AF=1;否则AF=0。ZF(ZeroFlag)——零标志位。若当前的运算结果为零,ZF=1;否则ZF=0。SF(SignFlag)——符号标志位。它和运算结果的最高位相同。OF(OverflowFlag)——溢出标志位。当补码运算有溢出时,OF=1;否则OF=0。3个控制标志位用来控制CPU的操作,由指令进行置位和复位。DF(DirectionFlag)——方向标志位。它用以指定字符串办理时的方向,当该地址“1”时,字符串以递减序次办理,即地址以从高到低序次递减。反之,则以递加序次办理。IF(InterruptenableFlag)——中断赞同标志位。它用来控制8086可否赞同接收外面中断央求。若IF=1,8086能响应外面中断,反之则不响应外面中断。注意:IF的状态不影响非障蔽中断央求(NMI)和CPU部中断央求。TF(TrapFlag)——追踪标志位。它是为调试程序而设定的骗局控制位。当该地址“1”时,8086CPU处于单步状态,此时CPU每执行完一条指令就自动产生一次部中断。当该位复位后,CPU恢复正常工作。2.58086中,储藏器为什么采用分段管理?【解】:8086/8088的地址总线宽度为20位,其最大寻址空间是1MB。而其他微办理器则在实模式下只能接见前1MB的储藏器地址。实质上,实模式就是为8086/8088而设计的工作方式,它要解决在16位字长的机器里怎么供应20位地址的问题,而解决的方法是采用储藏器地址分段的方法。程序员在编制程序时要把储藏器划分成段,在每个段地址空间是线性增长的。每个段的大小可达64KB,这样段地址能够用16位表示。储藏器分段的方法诚然给程序设计带来必然的麻烦,但这种方法能够扩大储藏空间,而且对于程序的再定位也是很方便的。2.6什么是逻辑地址?什么是物理地址?怎样由逻辑地址计算物理地址?【解】:物理地址:达成储藏器单元或I/O端口寻址的实质地址成为物理地址,CPU型号不同其物理地址也不相同。物理地址是指CPU和储藏器进行数据交换时实质所使用的地址,而逻辑地址是程序使用的地址。物理地址由两部分组成:段基址(段初步地址高16位)和偏移地址。前者由段存放器给出,后者是指储藏单元所在的地址离段初步地址的偏移距离。当CPU寻址某个储藏单元时,先将段存放器的容左移4位,尔后加上指令中供应的16位偏移地址而形成20位物理地址。在取指令时,CPU自动选择代码段存放器CS,左移4位后,加上指令供应的16位偏移地址,计算出要取指令的物理地址。货仓操作时,CPU自动选择货仓段存放器SS,将其容左移4位后,加上指令供应的16位偏移地址,计算出栈顶单元的物理地址。每当存取操作数时,CPU会自动选择数据段存放器(或附加段存放器ES),将段基值左移4位后加上16位偏移地址,获取操作数在存的物理地址。在80x86微机的输入/输出指令中,I/O端号平时是由DX存放器供应的,但有时也可以在指令中直接指定00H~0FFH的端口号。试问可直接由指令指定的I/O端口数是多少?【解】:由于在80x86的输入/输出指令中,能够直接在00H~0FFH指定,所以直接由指令指定的I/O端口数是256。指令分成几部分?每部分的作用是什么?【解】:每条指令由两部分组成:操作码字段和地址码字段。操作码字段:用来说明该指令所要达成的操作。地址码字段:用来描述该指令的操作对象。一般是直接给出操作数,放的存放器编号,也许给出操作数存放的储藏单元的地址或有关地址的信息。指出以下MOV指令的源操作数的寻址方式:MOVAX,1234H
也许给出操作数存MOV
AX,BXMOV
AX,[BX]MOVAX,TABLE;TABLE;TABLE是一个变量名MOVAX,[1234H]MOVAX,[BX+1234H]MOVAX,[BP][SI]MOVAX,[BX+SI-1234H]【解】:MOVAX,1234H马上寻址MOVAX,BX存放器寻址MOVAX,[BX]存放器间接寻址MOVAX,TABLE;TABLE是一个变量名直接寻址方式MOVAX,[1234H]直接寻址方式MOVAX,[BX+1234H]存放器相对寻址MOVAX,[BP][SI]基址变址寻址MOVAX,[BX+SI-1234H]相对地址变址寻址3.3设:(DS)=2000H,(BX)=0100H,(SS)=1000H,(BP)=0010H,TABLE的物理地址为2000AH,(SI)=0002H。求以下每条指令源操作数的储藏单元地址:MOV
AX,[1234H]MOV
AX,[BX]MOV
AX,TABLE[BX]MOV
AX,[BP]MOV
AX,[BP][SI]【解】:储藏单元地址:(DS)×10H+EA=2000H×10H+1234H=21234H储藏单元地址:(DS)×10H+(BX)=2000H×10H+0100H=20100H储藏单元地址:(DS)×10H+EA=2000H×10H+0100H+000AH=2010AH储藏单元地址:(SS)×10H+EA=1000H×10H+0010H=10010H储单元地址:(SS)×10H+EA=1000H×10H+0010H+0002H=10012H设ARRAY是字数组的首地址,写出将第5个字元素取出送AX存放器的指令,要求使用以下几种寻址方式:⑴直接寻址⑵存放器间接寻址
⑶存放器相对寻址
⑷基址变址寻址【解】:(1)直接寻址(2)存放器间接寻址(3)存放器相对寻址(4)基址变址寻址MOVAX,ARRAY+8MOVBX,ARRAY+8MOVBX,8LEABX,ARRAYMOVAX,[BX]MOVAX,ARRAY[BX]MOVSI,8MOVAX,[BX+SI]3.5设当前(CS)=2000H,(IP)=2000H,标号NEXT定义在当前代码段偏移地址是0100H处,(DS)=1000H,(BX)=1000H,(11000H)=00H,(11001H)=30H,数据段定义的字变量ARRAY的容为1000H,试写出以下转移指令的目标转移地址JMPNEARPTR⑵JMPBXJMPWORDPTRARRAY【解】:⑴JMPNEARPTR此转移指令的目标转移地址为:20100H⑵JMPBX此转移指令的目标转移地址为:21000H⑶JMPWORDPTRARRAY此转移指令的目标转移地址为:23000H设当前(CS)=2000H,(IP)=2000H,标号NEXT定义在3000H:1000H处。当前(DS)=1000H,(BX)=1000H,(11000H)=00H,(11001H)=03H,(11002H)=00H,(11003H)=30H,数据段定义的字变量
ARRAY的容为
0300H,(ARRAY+2)=3000H,试写出以下转移指令的目标转移地址:⑴JMPFARPTRNEXTJMPDWORDARRAY【解】:⑴JMPFARPTRNEXT此转移指令的目标转移地址为:31000H⑵JMPDWORDARRAY此转移指令的目标转移地址为:30300H3.7以下每组指令有何差异?(1)MOVAX,1234HMOVAX,[1234H](2)MOVAX,TABLEMOVAX,[TABLE](3)MOVAX,TABLELEAAX,TALBE(4)MOVAX,BXMOVAX,[BX]【解】:(1)MOVAX,1234H将马上数1234H送到存放器AX中MOVAX,[1234H]将储藏区[1234H]中的容送到存放器AX中MOVAX,TABLE将标号TABLE的地址送到存放器AX中MOVAX,[TABLE]将储藏区[TABLE]中的容送到存放器AX中MOVAX,TABLE将标号TABLE的地址送到存放器AX中LEAAX,TALBE(4)MOVAX,BXMOVAX,[BX]
将标号TABLE的地址送到存放器AX中存放器寻址存放器间接寻址3.8MOVCS,AX指令正确吗?【解】:MOVCS,AX指令不正确。由于CS是指令存放器,由系统自动改变,不能够由指令进行更正。写一指令序列,将3456H装入DS存放器。【解】:MOVAX,3456HMOVDS,AX3.10若正在接见货仓中03600H单元,则SS和SP的值是多少?【解】:若正在接见货仓中03600H单元,则SS和SP的值会有好多组合,其中能够有SS是0300H,SP是0600H。3.11若(SS)=2000H,(SP)=000AH,先执行将字数据1234H和5678H压入货仓的操作,再执行弹出一个字数据的操作,试画出货仓区及SP的容变化过程表示图(标出储藏单元的物理地址)。【解】:物理地址=(SS)×10H+SPSP→20006H78HSP→20008H34H20007H56HSP→2000AH20008H34H20009H12H20009H12H2000AH2000AH讲解XLAT指令是怎样变换AL存放器中的容的。并编写一段程序用XLAT指令将BCD码0~9变换成对应的ASCII码,并将ASCII码存入数据ARRAY中。【解】:XLAT指令是将AL的容代替成储藏单元中的一个数,常常用于代码变换。使用此指令前,先在数据段建立一个表格,表格首地址存入BX存放器,欲取代码的表位移量存入AL存放器中。XLAT指令将(AL)值扩展成16位,与(BX)相加形成一个段偏移地址,段地址取(DS),据此读出代码送入AL存放器。程序以下:TABLEDB30H,31H,┅,39HARRAYDB1ODUP(?)MOVCL,10MOVSI,0MOVBX,OFFSETTABLEMOVAL,ALAGAIN:XLATMOV[SI],ALINCSIINCALLOOPAGAIN若(AX)=0001H,(BX)=0FFFFH,执行ADDAX,BX此后,标志位ZF、SF、CF和OF各是什么?【解】:(AX)=0001H=0000000000000001B+(BX)=0FFFFH=1111111111111111B(AX)=0001H=10000000000000000B写一指令序列达成将AX存放器的最低4地址
则:ZF=1、SF=0、CF=1、OF=01,最高3位清0,第7、8、9位取反,其他位不变。【解】:ORAX,000FH(ORAX,0000000000001111B)ANDAX,1FFFH(ANDAX,0001111111111111B)XORAX,01C0H(XORAX,0000000111000000B)试写出执行以下指令序列后AX存放器的容。执行前(AX)=1234H。MOVCL,7SHLBX,CL【解】:(AX)=1234H=0001001000110100B执行后:(AX)=0001101000000000B=0001101000000000B=1A00H4.1假设以下指令中的全部表记符均为种类属性为字的变量,请指出以下指令中哪些是非法的?它们的错误是什么?⑴MOVBP,AL⑵MOVWORD_OP[BX+4*3][DI],SP⑶MOVWORD_OP1,WORD_OP2⑷MOVAX,WORD_OP1[DX]⑸MOVSAVEWORD,DS⑹MOVSP,SS:DATA_WORD[BX][SI]⑺MOV[BX][SI],2⑻MOVAX,WORD_OP1+WORD_OP2MOVAX,WORD_OP1-WORD_OP2+100⑽MOVWORD_OP1,WORD_OP1-WORD_OP2【解】:⑴MOVBP,AL两个操作数不般配MOVWORD_OP[BX+4*3][DI],SP⑶MOVWORD_OP1,WORD_OP2两个存单元之间不能够直接传达数据MOVAX,WORD_OP1[DX]MOVSAVEWORD,DS⑹MOVSP,SS:DATA_WORD[BX][SI]当基址为BX时,采用DS存放器MOV[BX][SI],2MOVAX,WORD_OP1+WORD_OP2MOVAX,WORD_OP1-WORD_OP2+100MOVWORD_OP1,WORD_OP1-WORD_OP2假设VAR1和VAR2为字变量,LAB为标号,试指出以下指令的错误之处:⑴ADDVAR1,VAR2⑵SUBAL,VAR1⑶JMPLAB[SI]⑷JNZVAR1⑸JMPNEARLAB【解】:⑴ADDVAR1,VAR2ADD两个操作数不能够同时为储藏单元,MOVAX,VAR1ADDAX,VAR2SUBAL,VAR1两个操作数不般配SUBAX,VAR1JMPLAB[SI]LAB与[SI]不能够相加JMPWORDPTR[SI]JNZVAR1JNZ后边应是标号,不应是变量JNZLABJMPNEARLAB缺少PTR运算符JMPNEARPTRLAB画图说明以下语句所分配的储藏空间及初始化的数据值。BYTE_VARDB’BYTE’,12,-12H,3DUP(0,?,2DUP(1,2),?)WORD_VARDW5DUP(0,1,2),?,-5,,'BY','TE',256H【解】:(1)(2)BYTE_VAR41HBWORD_VAR00H59HY00H54HT01H45HE00H0CH1202HF4H-12H00H00H0⋯-00H01H100H02H201H01H100H02H202H00H000H--01H1-02H2FBHFFH01H102H241H00H00H0-59H01H100H02H254H01H100H02H245H00H
01230个字01225BYTE56H02H假设程序中的数据定义以下:PARTNODW?PNAMEDB16DUP(?)COUNTDD?PLENTHEQU$-PARTNO问PLENTH的值为多少?它表示什么意义?【解】:PLENTH的值为22,它表示数据的个数。有符号定义语句以下:BUFFDB1,2,3,’123’EBUFFDB0LEQUEBUFF-BUFF问L的值是多少?【解】:PLENTH的值为6。假设程序中的数据定义以下:LNAMEDB30DUP(?)ADDRESSDB30DUP(?)
256HCITYDB15DUP(?)CODE-LISTDB1,7,8,3,2⑴用一条MOV指令将LNAME的偏移地址放入AX。⑵用一条指令将CODE_LIST的头两个字节的容放入SI。⑶写一条伪操作使CODE_LENGHT的值等于CODE_LIST域的实质长度。【解】:⑴用一条MOV指令将LNAME的偏移地址放入AX。MOVAX,OFFSETLANME⑵用一条指令将CODE_LIST的头两个字节的容放入SI。MOVSI,WORDPTRCODE_LSIT⑶写一条伪操作使CODE_LENGHT的值等于CODE_LIST域的实质长度。CODE_LENGHTEQUCITY-CODE_LIST试写出一个完满的数据段DATA_SEG,它把整数5赐予一个字节,并把整数-1,0,2,5和4放在10字数组DATA_LIST的头5个单元中。尔后,写出完满的代码段,其功能为:把DATA_LIST中头5个数中的最大值和最小值分别存入MAX和MIN单元中。【解】:参照程序以下:DATA_SEGSEGMENTDB1DB5DATA_LISTDB-1,0,2,5,4,5DUP(?)COUNTDB5MAXDB?MINDB?DATA_SEGENDSCODE_SEGSEGMENTASSUMECS:CODE_SEG,DS:DATA_SEGSTARTPROCFARPUSHDSMOVAX,0PUSHAXMOVAX,DATA_SEGMOVDS,AXLEABX,DATA_LISTMOVCX,COUNT-1MOVAL,[BX]MOVAH,[BX+1]LOOP1:INCBXCMPAH,ALJAELOOP1XCHGAH,ALLOOP2INCBXCMPAH,[BX]JAELISXCHGAH,[BX]JMPLOP2LIS:CMPAL,[BX]JBELOP2XCHGAL,[BX]LOOP2MOVMAX,AHMOVMIN,ALRETSTARTENDPCODE_SEGENDSENDSTART给出等值语句以下:ALPHAEQU100BETAEQU25GAMMAEQU2以下表达式的值是多少?⑴ALPHA*100+BETA⑵ALPHAMODGAMMA+BETA⑶(ALPHA+2)*BETA-2⑷(BETA/3)MOD5⑸(ALPHA+3)*(BETAMODGAMMA)⑹ALPHAGEGAMMA⑺BETAAND7⑻GAMMAOR3【解】:⑴ALPHA*100+BETA100×10025=10025⑵ALPHAMODGAMMA+BETA100/(25+2)=19(ALPHA+2)*BETA-2(100+2)*25=2548(BETA/3)MOD5(25/3)MOD5=3(ALPHA+3)*(BETAMODGAMMA)(100+3)*(25MOD2)=103ALPHAGEGAMMAGZGAMMA=0FFFFHBETAAND7AND7=1GAMMAOR3OR3=3对于下面的数据定义,三条MOV指令分别汇编成什么?(可用马上数方式表示)TABLEADW10DUP(?)TABLEBDB10DUP(?)TABLECDB’1234’┇MOVAX,LENGTHTABLEAMOVBL,LENGTHTABLEBMOVCL,LENGTHTABLEC【解】:MOVAX,LENGTHTABLEAMOVAX,OOOAHMOVBL,LENGTHTABLEBMOVBL,0AHMOVCL,LENGTHTABLECMOVCL,O1H4.10对于下面的数据定义,各条MOV指令单独执行后,有关存放器的容是什么?FLDBDB?TABLEADW20DUP(?)TABLEBDB‘ABCD’⑴MOVAX,TYPEFLDB⑵MOVAX,TYPETABLEA⑶MOVCX,LENGTHTABLEA⑷MOVDX,SIZETABLEAMOVCX,LENGTHTABLEB【解】:(1)MOVAX,TYPEFLDB(AX)=1(2)MOVAX,TYPETABLEA(AX)=2(3)MOVCX,LENGTHTABLEA(CX)=20(4)MOVDX,SIZETABLEA(DX)=40(5)MOVCX,LENGTHTABLEB(CX)=1讲解以下看法:中断DMA,中断源,中断向量中断向量表,不能障蔽中断,通道FCB,中断嵌套,文件标志中断入口,可障蔽中断【解】:答:⑴当进度要求设备输入数据时,CPU把准备存放输入数据的存初步地址以及要传达的字节数分别送入DMA控制器中的存地址存放器和传达字节计数器。⑵发出数据传输要求的进行进入等待状态。此时正在执行的CPU指令被暂时挂起。进程调换程序调换其他进度据有CPU。⑶输入设备不断地偷取CPU工作周期,将数据缓冲存放器中的数据纷至沓来地写入存,直到所要求的字节全部传达达成。DMA控制器在传达完全部字节时,经过中断央求线发出中断信号。CPU在接收到中断信号后,转入中断办理程序进行后续办理。⑸中断办理结束后,CPU返回到被中断的进度中,或切换到新的进度上下文环境中,连续执行。中断源:引起中断的事件称为中断源。中断向量表:每种中断都给安排一其中断种类号。80x86中断系统能办理256各种类的中断,种类号为0H~0FFH。如图8.3所示的中断源,系统时钟的中断种类为08,键盘为09,软中断中的除法错误的中断种类为0等。每各种类的中断都由相应的中断办理程序来办理,中断向量表就是各种类中断办理程序的入口地址表。中断嵌套:正在运转的中断办理程序,又被其他中断源中断,这种情况叫做中断嵌套。中断就是CPU在执行当前程序时由于外面事件引起CPU暂时停止当前正在执行的程序而转向执行央求CPU暂时停止的外面事件的服务程序,该程序办理完后又返回连续执行被停止的程序;中断向量是中断办理子程序的入口地址;地址围是00000H-003FFH。实验一系统认识实验一.实验目的掌握TDN86/88授课实验系统的基本操作。二.实验设备TDN86/88授课实验系一致台。三.实验容及步骤系统认识实验(1)(1)程序的输入与更正从3500H存单元开始建立0-15共16个数据。实验步骤:a.使用串行通讯电缆将实验系统与PC机相连。b.开启实验系统。c.在系统软件所在目录(默认为C:\TANGDU\W8688)下运转文件
进入集成操作软件环境,打开文件菜单项选择择新建,即可开始输入源程序。d.输入程序后,在文件菜单中选择保存程序,注意文件名的格式,扩展文件名必定为*.ASM,例:。e.在编译菜单中选择汇编(CTRL+F2)对源程序进行汇编,若源程序没有错误生成目标文件*.OBJ,若源程序中有错误则返回错误信息,依照错误信息对源程序进行更正后再进行汇编。f.汇编无误后,在编译菜单中选择(CTRL+F3)对汇编生成的*.OBJ目标文件进行,信息显示于屏幕上,如没有错误,生成相应的可执行文件*.EXE。g.在窗口菜单中选择调试(CTRL+1)打开调试窗口,出现系统提示符“>”后选择菜单中的装入程序,选择相应的*.EXE文件,填入程序段地址与偏移量(默认段地址0000,偏移量2000,一般不用更正),确定后PC开始将程序从磁盘装入到授课实验系统存,提示装载达成后使用U命令进行反汇编,检查程序可否正确装入。U命令输入格式为U0000:2000。h.当发现源程序输入错误或需要调整时,在调试窗口下可用
A命令来更正,如更正
2000句为MOVDI,3500的操作以下:显示信息
键入信息>
A2000↙0000:2000
MOVDI,3500↙0000:2003
↙>(2)运转程序系统供应了单步运转、断点运转、连续运转等方式,详尽操作以下:单步运转:在“>”提示符下输入T↙或点击菜单中的单步运转执行,每运转一条指令后b.c.
会显示下一条待执行指令并显示变化存放器的容,重复T↙可一步一步运转直至程序结束。连续运转:在“>”提示符下输入G=0000:2000↙(在系统默认段址CS=0000情况下可直接输入G=2000↙)可连续运转程序,在运转过程中,可经过CTRL+BREAK或点击菜单中的停止来停止程序运转。断点运转:在程序中可用B命令定义断点,系统规定最多定义10个断点,比方:显示信息
键入信息>
B↙[0:]
2009↙[1:]
↙>上例中定义了2009地址为断点,输入GB=0000:2000↙程序连续运转至断点时,程序中断并显示当前各存放器容。GB是G命令的扩大,表示含断点连续运转程序,断点仅当系统复位时除去。(3)存单元的容显示:使用D0000:3500↙可查察3500H-350FH单元中的容可否为0-15共16个数。(4)存单元容的更正:若要更正某一单元容,可进行以下操作,其中,“空格”键用于向待编写单元的高地址方向搬动地址,而“-”键则向反方向搬动地址;用↙来确认输入,退出E命令。示信息入信息>E3500↙0000:350000_01space0000:350101_Space0000:350202_-0000:350101_↙>系操作(2)将存3500H元开始的0-15共16个数到3600H元开始的数据区中。步:1)入程序并无,、接后装入系。2)E3500↙,在3500-3510元中分送入00、01、02⋯。3)G=0000:2000↙,运转程序,按CTRL+BREAK中断,返回控。(4)D3600↙,示果:3600000102⋯。实验二运算类编程实验一.实验目的掌握使用运算指令程及方法。掌握运算指令各状志位的影响及其方法。二.实验设备TDN86/88授课系一台三.实验容及步骤8086/8088指令系供应了加、减、乘、除运算的基本指令,可二制、BCD数据型行算运算。二制双精度加法运算算X+Y=Z,将果
Z存入某存元。本程序是双精度(并存入低址存元,后求高位,所以高位字相加句需用
2个16位,既32位)运算,利用累加器AX,先求低十六位和,16位和,再存入高址存元。由于低位和可能向高位有ADC指令,低位相加有位,CF=1,高位字相加,同加上CF中的1。步:(1)入程序并无,、接后装入系。(:CS:0000H,IP:2000H)(2)用U0000:2000看MOVAX,XXXX(DATA)句,获取数据段段地址CS:XXXX。用E命令EXXXX:0000↙XL,XH,YL,YH存入二制数A0651500和9EB72100。3)G=0000:2000↙,运转程序。4)DXXXX:0008↙,示算果:3E1D3700CC⋯。5)屡次几数,观察程序的正确性。2.十制数的BCD减法运算算X-Y=Z,其中,X、Y、Z
BCD。步:(1)入程序并无,、接后装入系。(:CS:0000H,IP:2000H)(2)用U0000:2000看MOVAX,XXXX(DATA)句,获取数据段段地址CS:XXXX。用命令EXXXX:0000↙X,Y存入40和12的BCD:00040201。
E3)G=0000:2000↙,运转程序。4)DXXXX:0004↙,示算果:0802CC⋯。5)屡次几数,观察程序的正确性。乘法运算本实验实现十进制数的乘法,被乘数和乘数均以BCD码形式存放于存中,乘积在屏幕上显示。实验步骤:(1)输入程序并检查无误,经汇编、连接后装入系统。(2)用U0000:2000↙查察MOVAX,XXXX(DATA)语句,获取数据段段地址CS:XXXX。用E命令EXXXX:0000↙给在对应数据段填入乘数与被乘数。3)G=0000:2000↙,运转程序,屏幕显示结果。用CTRL+BREAK可停止程序运转。4)屡次试几组数,观察程序的正确性。四.思虑题编写有符号数A1B1+A2B2的程序,A1、A2、B1、B2均为符号数。编写两个数值长度不等的BCD码相加程序。实验三分支程序设计实验一.实验目的掌握分支程序的构造。掌握分支程序的设计、调试方法。二.实验设备TDN86/88授课实验系一致台三.实验容及步骤1.比较两个字符串STR1与STR2可否相同,若相同则在屏幕上显示MATCH,不相同则显示NOMATCH。设计一数据块间的搬移程序设计思想:程序要求把存中一数据区(称为源数据块)传达到另一储藏区(称为目的数据块)。源数据块和目的数据块在储藏中可能有三种情况,如图3-1所示。图3-1对于两个数据块分其他情况,如图3-1(a),数据的传达从数据块的首址开始,也许从数据块的末址开始均可。但对于有部分重叠的情况,则要加以解析,否则重叠部分会因“搬移”而遭破坏,能够得出以上结论:当源数据块首址>目的块首址时,从数据块首地址开始传达数据。当源数据块首址<目的块首址时,从数据块末地址开始传达数据。实验步骤:(1)输入程序并检查无误,经汇编、连接后装入系统。(2)用E命令在以SI为起址的单元中填入16个数。3)G=0000:2000↙,运转程序。(4)用D命令查察DI为起址的单元中的数据可否与SI单元中的数据相同。(5)试改变SI、DI的取值,观察在三种不相同的数据块情况下程序的运转。四.思虑题为什么当源数据块首址>目的块首址时,应从数据块首地址开始传达数据?而当源数据块首址<目的块首址时,应从数据块末地址开始传达数据?实验四循环程序设计实验一.实验目的加深循构的理解。掌握循构程序的方法。熟掌握循程序的方法。二.实验设备TDN86/88授课系一台三.实验容及步骤制程序算式子1+2+3+⋯+99+100的果。求某数据区数的个数数据区的第一元存放区元数据的个数,从第二元开始存放数据,在区最后一个元存放果。数据区数的个数,需要逐个判断区的每一个数据,尔后将全部数据中凡是符号位1的数据的个数累加起来,即得区所包含数的个数。步:1)入程序并无,、接后装入系。2)E3000↙入数据以下:3000=06(数据个数)3001=1288829022333)G=0000:2000↙,运转程序。4)D=3007↙,示果03。四.思虑题更正程序2,使其能分求出数据区中正数、零和数的个数。实验五排序程序设计实验一.实验目的掌握分支、循环、子程序调用等基本的程序构造。学习综合程序的设计、编制及调试。二.实验设备TDN86/88授课实验系一致台三.实验容及步骤在数据区中存放着一组数,数据的个数就是数据缓冲区的长度,要求用气泡法对该数据区中数据按递加关系排序。设计思想:a.从最后一个数(或第一个数)开始,依次把相邻的两个数进行比较,即第N个数与第N-1个数比较,第N-1个数与第N-2个数比较等等;若第N-1个数大于第N个数,则两者交换,否则不交换,直到N个数的相邻两个数都比较完为止。此时,N个数中的最小数将被排在N个数的最前列。b.对剩下的N-1个数重复上步,找到N-1个数中的最小数。重复第二步,直到N个数全部排序好为止。实验步骤:(1)输入程序并检查无误,经汇编、连接后装入系统。(2)用E3000↙在3000-3009H数据区中任意放入10个无符号数。3)G=0000:2000↙,运转实验程序。4)用D=3000↙检查排序结果。5)屡次更正数据区中的数,运转程序并观察结果,以考据程序的正确性。2.学生成绩名次表将分数为1-100之间的30个成绩存入首址为3000H的单元中,3000H+i表示学号为i的学生成绩。编写程序能在3100H开始的地域排出名次表,3100H+i为学号i的学生名次。实验步骤:(1)输入程序并检查无误,经汇编、连接后装入系统。(2)将30个成绩存入首址为3000H的单元中。3)调试并运转实验程序。4)检查3100H开始的地域中的名次表的正确性。四.思虑题请指出程序1中哪部分属于外循环,哪部分属于循环?程序中对SI、CX压栈和弹栈的意义何在?更正程序2,使其能将3100H开始的地域中的名次表显示出来。实验六中断特色及8259应用编程实验一.实验目的认识TDN86/88系统的中断特色。掌握8259中断控制器的工作原理。掌握8259可编程控制器的应用编程。学习掌握8259级连方式的使用方法。学习在接口实验单元上构造连接实验电路的方法。二.实验设备TDN86/88授课实验系一致台。排线、导线若干。三.实验容及步骤1.8259应用实验(1)图6-1实验(1)线路按图6-1所示实验线路编写程序,使每次响应外面中断IRQ7时,显示字符“7”,中断次后,程序退出。实验步骤:1)按图6-1连接实验线路。2)输入程序并检查无误,经汇编、连接后装入系统。3)G=0000:2000运转实验程序。(4)重复按KK2微动开关,显示屏上应用“7”来响应,直到按10次后,系统处于停机状态,用CTRL+BREAK返回监控。2.8259应用实验(2)图6-2实验(2)线路按图6-2所示实验线路,编写程序,达成下面的要求:当无中断央求时,执行主程序,延时显示“main”,若有中断央求,则执行其中断服务程序,显示该中断号“6”或“7”;若正在执行较初级的中断服务程序,则赞同比它优先级高的中断被响应(IRQ6>IRQ7)。主程序在执行过程中,每显示一个“main”,空一格。实验步骤:1)按图6-2连接实验线路。2)输入程序并检查无误,经汇编、连接后装入系统。(3)G=0000:2000↙,运转实验程序,则连续显示
MAIN,先后按动
KK1和
KK2微动开关来模拟中断央求信号,记录央求序次及显示结果。3.8259级连实验本实验是以系统中的8259作为主片,外接另一片8259作为从片,组成8259级连方式的中断实验线路,如图6-3所示,其中规定主片的IRQ7上连接一片从片,从片上的IRQ7接中断申请电路(R-S单脉冲触发器),并规定从片的中断矢量编号为30-37H,其命令存放器组编址为00和01。图6-38259
级连实验接线图实验步骤:(1)按图
6-3
连接实验线路,其中
INTA连接必定在开机上电此后。2)输入程序并检查无误,经汇编、连接后装入系统。3)G=0000:2000↙,运转实验程序,并经过按动KK1微动开关向从片申请中断,每按动一次KK1,显示屏上显示一个“7”字符,表示CPU响应了一次中断。四.思虑题在实验(2)中,若先按动KK2,在按动KK1(此时还没有显示“7”),显示结果会是什么?为什么?实验七8255并行接口应用实验一.实验目的学习并掌握8255的各种工作方式及其应用。学习在系统接口实验单元上构造实验电路。二.实验设备TDN86/88授课实验系一致台。排线、导线若干。三.实验容及步骤1.8255接口应用实验(1)图
7-1
实验线路图按图7-1所示实验线路编写程序,使8255端口A工作在方式0并作为输出口,端口工作在方式0并作为输入口。用一组开关信号接入端口B,端口A输出线接至一组发光二极管上,尔后经过对8255芯片编程来实现输入/输出功能。
B实验步骤:1)按图接线。2)输入程序并检查无误,经汇编、连接后装入系统。3)G=0000:2000↙,运转实验程序,拨动开关组,观察发光二极管应一一对应。2.8255接口应用实验(2)按图7-2所示接线,编写程序,使作于方式1并作为输入口,则端口C的号输出端INTRB。当B口就绪后,经过发出显示。
8255端口A工作在方式0并作为输出口,端口B工PC2成为选通讯号输入端STB,PC0成为中断央求信STB信号来央求CPU读取端口B数据并送端口A输图7-2实验接线图(KK1-初态为“1”)实验步骤:1)按图接线。2)输入程序并检查无误,经汇编、连接后装入系统。3)G=0000:2000↙,运转实验程序,拨动开关组K0-K7,准备好后,按动微动开关KK1,观察发光二极管组,应与开关信号对应。实验八8253准时/计数器应用实验一.实验目的熟悉8253在系统中的典型接法。掌握8253的工作方式及应用编程。二.实验设备TDN86/88授课实验系一致台。排线、导线若干。三.实验容及步骤8253计数器应用实验(1)设定8253求信号,显示“
的2#通道工作方式为方式M”。其实验线路如图8-1
0,用于事件计数,当计数值为所示。
5时,发出中断请图8-1实验(1)线路实验步骤:1)按图接线。2)输入程序并检查无误,经汇编、连接后装入系统。(3)用E命令在0000:003CH单元填入IRQ7中断矢量,即0000:003C12200000。(4)运转实验程序,按动微动开关KK1,观察可否每按6次,屏幕上显示一个“M”字符。8253准时器应用实验(2)#利用8253的0通道来准时中断(IRQ0),循环显示“0”-“9”十个数,实验线路如图图8-2实验(2)线路实验步骤:1)输入程序并检查无误,经汇编、连接后装入系统。2)运转程序,显示屏上应连续逐行显示“0”-“9”十个数,直到用“RESET”复位开关来中断。3)更正8253的0#常常,再运转程序,观察显示的快慢程度。电子发声实验(3)系统的OPCLK()作为音乐节拍,由表格查出每个音符对应的常常送给计数器2(工作在方式3:方波频率发生器),以确定音调,驱动扬声器产生音乐。实验接线如图8-3。图8-3实验(3)接线图实验步骤:1)按图接线。2)输入程序并检查无误,经汇编、连接后装入系统。3)G=2000↙运转程序,即可听到扬声器发出音乐声。四.思虑题在将计数初值赋给8253后,马上就可以启动并进行准时或计数吗?实验九8251串行接口应用实验(一)双机通讯实验一.实验目的掌握8251的工作方式。学习串行通讯的有关知识。认识8251在半双工双机通讯情况下的软件编制,硬件连接技术。二.实验设备TDN86/88授课实验系统两台。排线、导线若干。三.实验容及步骤本实验需用两台TDN86/88授课实验系统,并经过排线将两台仪器相连,详尽接线如图9-1。图9-1双机通讯其中1号机用做接收机,2号机用做发送机。实验目的是将2号机中的3000-3009H十个单元中的代码传达到1号机的3000-3009H单元中。实验步骤:1)按图9-1将1、2号机连接起来。2)两台机器上电后,均输入程序,并要求2号机用E命令在3000-3009H十个单元中填入十个ASCII码,如:3000:30313233343536373839(3)先使1号机程序运转,等串行接收数据,尔后再运转2号机程序,发送字符串到串口,当数发送、接收达成时,1号机显示相应的ASCII码字符串,如:R0123456789,用CTRL+BREAK可使程序中断,返回监控。(4)检查1号机的3000-3009H单元,应和2号机一致。(二)串口自觉自收实验一.实验目的掌握8251串行通讯方式的硬件接口电路及软件编制。二.实验设备TDN86/88授课实验系一致台。排线、导线若干。三.实验容及步骤对于串行传输的数据格式,本实验有以下规定:一个字有一个逻辑“1”初步位,8位ASCII码数据位,1位逻辑“1”停止位,传输波特率为9600baut。实验步骤:1)将实验系统上8251的TXD与RXD直接相连。2)输入程序并检查无误,经汇编、连接后装入系统。3)用E命令在4000-400A单元赋值。4)运转程序,用D命令观察3000-300A单元容和4000-400A单元容可否一致。四.思虑题使两机分别工作在中断方式下,画出流程图,并编制程序。实验十A/D变换实验一.实验目的学习掌握模/数信号变换基根源理。掌握ADC0809芯片的使用方法。二.实验设备TDN86/88授课实验系一致台。排线、导线若干。三.实验容及步骤按图编写实验程序,实现A/D变换。图10-1ADC0809应用实验线路实验步骤:1)按图接线。2)输入程序并检查无误,运转程序。(3)调治W电位起,显示屏上显示AD0809:IN0XX。4)用万用表测出W输出电压,并记录显示屏上的相应数据,做出变换图。5)求0809芯片的整量化误差。四.思虑题若改用EOC信号来申请中断读A/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026城市改造审核心得体会
- 2026年跨境电商运营实战课件
- 医疗岗2026面试自测卷习题汇编2026含答案解析
- 急性蜂窝织炎的切开引流护理
- 《金色的鱼钩》教案
- 小儿精索静脉曲张的随访
- (2025年)饲料法律法规培训考试试题及答案
- 《国际经济法》期末考试试题含答案
- H9亚型禽流感病毒变异的研究进展
- 塔吊使用过程事故救援应急预案
- GB/Z 270-2026安全与韧性业务连续性管理体系业务连续性策略指南
- 2026年医疗废物分类及处理培训考试试题(附答案)
- GB/T 48315-2026鲁班工坊运行质量评估指南
- 2026年溶聚丁苯橡胶行业洞察报告及未来五至十年发展趋势报告
- 2026年健康科普大赛基础测试题含答案
- 2026年四川省高考历史真题试卷
- 八年级物理上册期末《声现象》6大易错题专项训练
- 2026人教版六年级数学上册活动课《水是生命之源》教案
- 2026年四川省拟任县处级领导干部理论(任职资格考试)全真模拟试题及答案
- 电机学第五版课后答案 -修订版
- 四川省雅安市2024-2025学年七年级上学期期末历史试题(含答案)
评论
0/150
提交评论