




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、页眉内容第1章绪论作业1.将下列二进制数转换成十进制数。(1) B=202(2) 00111101B=61(3) 01001101B=77(4) B=1643.将下列十进制数分别转换为二进制数和十六进制数。(2) 76= 100 1100B =4CH(4) 134= 1000 0110B =86H4.求下列十进制数的 BCM(1) 327=11 0010 0111 (BCW)(2) 1256=1 0010 0101 0110( BCD)6.求出下列10进制数的原码、反码和补码(2) +85(4) -85解:85=0101 0101B原码:+85= 0101 0101B -85= 1101 01
2、01B反码:+85= 0101 0101B -85= 1010 1010B补码:+85= 0101 0101B -85= 1010 1011B10.画出微型计算机的基本结构框图,说明各部分的主要功能是什么?解:微型计算机的基本结构框图如下:微处理器CPU控制微处理器与存储器或 I/O设备间的数据交换;进行算术和逻辑运算等操作;判定和控 制程序流向。微处理器主要完成:(1)指令控制:从存储器中取指令,指令译码;(2)数据加工:简单的算术逻辑运算;(3)操作控制:在微处理器和存储器或者I/O之间传送数据;(4)时间控制:程序流向控制。存储器:用来存放数据和指令。I/O接口:主机和外设间的桥梁,提供
3、数据缓冲驱动、信号电平转换、信息转换、地址译码、定时控制等 各种功能。I/O设备:输入原始数据和程序,转换成计算机能识别的信息,送入存储器去等待处理。输出运算结果。 总线:连接计算机系统中各功能部件的信息通道。第2章8086CPU作业2. 8086CPU内部由哪两部分组成?它们的大致是如何工作的?答:(1) 8086CPU由指令执行部件EU和总线接口部件 BIU两部分组成。 BIU先执行读存储器操作,从给定地址单元中取出指令,送到先进先出的指令队列中等待执行。存储器的物理地址=CS 16+IP,在地址加法器 中形成。EU从指令队列中取走指令,经EU控制器译码分析后,向各部件发控制命令,以完成执
4、行指令的操作。BIU与EU是并行工作方式。 当指令队列已满,EU在执行指令,未向总线接口单元BIU申请读/写内存或I/O操作时,BIU处于空闲状态。指令执行过程中,若需对存储器或I/O端口存取数据,EU就要求BIU去完成相应的总线周期。5.两个带符号数1011 0100B和1100 0111B相加,运算后各标志位的值等于多少?哪些标志位是有意 义的?如果把这两个数当成无符号数,相加后哪些标志位是有意义的?解:(1)两个带符号数: 不考虑CF标志1011 0100 + 1100 01111 0111 1011运算后各标志位状态如下:CF=1 ,有进位,对于带符号数,无意义。PF=1,结果有偶数个
5、1AF=0,无半进位,非 BCD码运算,无意义。ZF=0,结果非0SF =0,结果为正数OF=1,溢出(两个负数相加,结果变成了正数)(2)两个无符号数: 不考虑SF和OF标志1011 0100 + 1100 01111 0111 1011运算后各标志位状态如下:CF=1 ,有进位PF=1,结果有偶数个1ZF=0,结果非0AF、SF、 OF无意义。20 .简要解释下列名词的意义。CPU :中央处理单元 CPU (Control Processing Unit)也称微处理器,是微型计算机的核心部件,由运 算器ALU、控制器、寄存器组以及总线接口等部件组成。主要完成各种运算,负责对整机的控制。存储
6、器:用于存储程序和数据的硬件设备。堆栈:堆栈是一种数据结构,是内部 RAM的一段区域。设置堆栈的目的是用于数据的暂存,中断、 子程序调用时断点和现场的保护与恢复。IP:指令指针寄存器,用于控制 CPU的指令执行顺序(只存放偏移量),只能和代码段寄存器 CS配 合使用,可以确定当前所要取的指令的内存地址, 且始终指向代码段中下一条将要读取到 CPU指令队列的 那条指令。顺序执行程序时, CPU每取一个指令字节,IP自动加1,指向下一个要读取的字节。SP:堆栈指针寄存器,用于指示堆栈的栈顶地址偏移量的寄存器,它决定了堆栈在内部RAM中的物理位置。只能和SS段寄存器配合使用,且始终指向堆栈的栈顶,在
7、堆栈指令中隐含的使用它来定位栈顶数 据。BP:基址指针寄存器。用于存放偏移量,通常和SS段寄存器配合使用,在间接寻址中用于定位堆栈段中的内存单元。段寄存器:由于CPU内部的寄存器都是16位的,为了能够提供 20位的物理地址,8086系统中采用 了存储器分段的方法。规定存储器的一个段为 64KB,由段寄存器来确定存储单元的段基址, 由指令提供该 单元相对于相应段起始地址的 16位偏移量。状态标志:表示前一步操作(如加、减等)执行以后, ALU所处的状态,后续操作可以根据这些状态 标志进行判断,实现转移。控制标志:可以通过指令人为设置,用以对某一种特定的功能起控制作用(如中断屏蔽等),反映了人们对
8、微机系统工作方式的可控制性。物理地址:存储器的实际地址,它是指 CPU和存储器进行数据交换时所使用的地址。物理地址是由段 地址与偏移地址共同决定的,计算物理地址的表达式为:物理地址=段地址 x 16 +偏移地址逻辑地址:是在程序中使用的地址,它由段地址和偏移地址两部分组成。逻辑地址的表示形式为 段地址:偏移地址页眉内容机器语言:直接用二进制编码表述的指令系统语言,通常称为机器语言,机器语言指令是计算机惟一能直接识别和执行的指令。汇编语言:便于记忆和使用,通常使用汇编语言(符号指令或指令助记符)来描述计算机的指令系统。指令:让计算机完成某种操作的命令称为指令。指令系统:一台计算机所能识别、执行的
9、指令的集合就是它的指令系统。总线:连接计算机系统中其他主要功能部件的桥梁,是计算机系统中信息输送的枢纽,只有通过总线,计算机系统的各部件才能实现相互通信。内部总线:微处理器内部各个器件之间传送信息的通路。系统总线:微处理机机箱内的底板总线。可分为:ISA、 EISA、 VESA 局部总线、PCI 局部总线等。时钟周期:CPU 时钟频率的倒数称为时钟周期,也称T 状态。总线周期:BIU 完成一次访问存储器或I/O 端口操作所需要的时间称为总线周期。一个基本的总线周期是由 4 个(或 4 个以上)时钟周期组成的。指令周期:执行一条指令所需要的时间称为指令周期,不同指令的指令周期的长短是不同的。一个
10、指令周期是由几个总线周期组成的。21 . 要完成下列运算和控制,用什么标志判别?其值是什么?( 1 )比较两数是否相等?( 2)两数运算后结果是正数还是负数?( 3)两数相加后是否溢出?( 4)奇偶校验判断。( 5)两数相减后比较大小。( 6)中断信号能否允许?答:( 1 )比较两数是否相等:两数相减后用零标志ZF 判断, ZF=1 ,则相等。( 2)两数运算后结果是正数还是负数:用符号标志SF判断,SF=1,则结果为负数。( 3)两数相加后是否溢出:用溢出标志OF判断,OF=1,则有溢出。( 4)奇偶校验判断:采用偶校验方式,判定是否要补“ 1”?用奇偶标志 PF 判断,若数据结果低8 位中
11、含有偶数个“1",则PF=1;不用补“俏(5)两数相减后比较大小:ZF=1,两数相等。对于无符号数, CF=1 ,则被减数小于减数;CF=0,则 被减数大于减数;ZF=1,则两数相等。对于带符号数, SF® OF=1 ,则被减数小于减数;SF® OF=0,则被 减数大于减数。( 6)中断信号能否允许:用中断允许标志IF 判断, IF=1 ,则能允许可屏蔽中断。22. 说明8086 系统中“最小模式”和 “最大模式”两种工作方式的主要区别。最小模式(最小工作方式) :单微处理器系统(系统中只有一个8086 微处理器),所有的总线控制信号,都是直接由8086CPU 产
12、生的,适用于规模较小的微机应用系统。当把 8086 的 33 脚 MN/MX 接 +5V 时, 8086 CPU 就处于最小工作方式。最大模式 (最大工作方式) : 多微处理器系统(包含有两个或多个微处理器,一个主处理器8086CPU,其他的处理器称为协处理器它们是协助主处理器工作的。) ,主要用在中等或大规模的8086 系统中。当把 8086 的 33 脚 MN/MX 接地时,8086 CPU 就处于最大模式。第 3 章 作业1分别说明下列指令的源操作数和目的操作数各采用什么寻址方式。源目的(1)MOV AX, 2048H立即寻址寄存器寻址(2) MOV CL, 0FFH立即寻址寄存器寻址(
13、3) MOV BX, SI寄存器间接寻址寄存器寻址(4) MOV 5BX, BL寄存器寻址寄存器相对寻址(5) MOV BP+100H, AX寄存器寻址寄存器相对寻址(6) MOV BX+DI, $立即寻址基址变址寻址(7) MOV DX, ES:BX+SI基址变址寻址寄存器寻址(8) MOV V ALBP+DI, DX寄存器寻址相对基址加变址寻址(9) IN AL, 05HI/O 端口寻址(或直接寻址)寄存器寻址(10) MOV DS, AX寄存器寻址寄存器寻址2 已知: DS=1000H, BX=0200H, SI=02H, 内存 10200H10205H 单元的内容分别为10H, 2AH
14、, 3CH, 46H,59H, 6BH 。下列每条指令执行完后(1)MOV AX, 0200H ;(2) MOV AX, 200H ;(3) MOV AX, BX ;(4) MOV AX, 3BX;(5) MOV AX, BX+SI ;(6) MOV AX, 2BX+SI ;6指出下列指令中哪些是错误的,错在什么地方( 1 ) MOV DL, AX( 2) MOV 8650H, AX( 3) MOV DS, 0200H( 4) MOV BX, 1200H( 5) MOV IP, 0FFH( 6) MOV BX+SI+3, IP( 7) MOV AX, BXBP( 8) MOV AL, ES:B
15、P( 9) MOV DL, SIDI( 10) MOV AX, OFFSET 0A20H( 11) MOV AL, OFFSET TABLE( 12) XCHG AL, 50H( 13) IN BL, 05H( 14) OUT AL, 0FFEH10. 已知 AX=2508H , BX=0F36H位 CF 等于什么?( 1 ) AND AH , CL(2) OR BL , 30H(3) NOTAX(4) XORCX,0FFF0H(5) TEST DH , 0FH(6) CMPCX,00H(7) SHR DX, CL(8) SARAL ,1(9) SHLBH ,CL( 10 ) SAL AX ,
16、 1( 11) RCL BX, 1( 12) ROR DX, CL11. 假设数据定义如下:DATA SEGMENTAX 寄存器的内容各是什么?AX 内容(AX)=0200H(AX)=2A10H(AX)=0200H(AX)=5946H(AX)=463CH(AX)=6B59H错在什么地方错误,源和目的操作数类型不匹配,DL 是 8 位寄存器,AX 是 16 位寄存器。错误,立即数不能作为目的操作数。错误,不能用立即数直接给段寄存器赋值。错误,不能在两个存储单元之间直接传送数据错误, IP 不能作目的操作数或不能用立即数直接给IP 寄存器赋值。错误, IP 不能作源操作数。错误,基址变址寻址方式必
17、须是一个基址寄存器与一个变址寄存器,不能两个同时为基址寄存器(BX 、 BP 均为基址寄存器)。正确。错误,基址变址寻址方式必须是一个基址寄存器与一个变址寄存器,不能两个同时为变址寄存器(SI、 DI 均为变址寄存器)。错误, OFFSET 后必须是存储单元标号地址,不能是立即数。错误,操作数类型不匹配,AL 为 8 位, TABLE 为 16 位。错误,交换指令XCHG的操作数不能是立即数。错误, IN 指令的目的操作数必须是累加器错误, OUT 指令的源操作数必须是累加器,目的操作数为8 位 I/O 端口地址或用DX做桥梁的16 位I/O 端口地址。CX=0004H ,DX=1864H ,
18、求下列每条指令执行后的结果是什么?标志(AH )=04HCF=0(BL )=36HCF=0(AX )=0DAF7HCF 不变(不影响( CX) =0FFF4H CF=0(DH )=18HCF=0(CX )=0004HCF=0DX) =0186H CF=0( AL ) =04H CF=0BH ) =0F0H CF=0AX ) =4A10H CF=0CF=0, ( BX) =1E6CHCF=1, ( BX) =1E6DH, ( DX) =4186H CF=0CF )CF=0STRING DB The Personal Computer & TVDATA ENDS试用字符串操作指令编程完成以
19、下功能:( 1 )把该字符串传送到附加段中偏移地址为GET_CHAR 开始的内存单元中。解:程序段如下:LEASI, STRING;置源串偏移地址;置目的串偏移地址;置串长度;方向标志复位;字符串传送LEA DI , GET_CHARMOV CX, 26CLDREP MOVSB12编程将AX 寄存器中的内容以相反的次序传送到DX 寄存器中,并要求AX 中的内容不被破坏,然后统计 DX 寄存器中1 的个数是多少。解:将 AX 的内容用ROR 循环右移,16 次之后 AX 的内容不变(如果用算术/逻辑右移SHL/SAL ,则 AX的内容破坏,需要用堆栈PUSHU AX/POP AX 保护) ,其最
20、低位移入CF 中, 再使用 RCL 循环左移将CF 中的值移入DX 中。并且,如果CF 的值为1,则将BL 加 1 。MOV CX, 16XOR BL, BLLP1:ROR AX, 1JNC LP2INC BLLP2:RCL DX,1LOOP LP1HLT调试程序:STACK SEGMENT STACKDB 100 DUP(?)STACK ENDSDATA SEGMENTBUF DW 12BUF1 DW 100 DUP (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: PUSH DSMOV AX,DA TAMOV DS,
21、AXMOV AX,1234HMOV CX, 16XOR BL, BLLP1:ROR AX, 1JNC LP2INC BLLP2:RCL DX,1LOOP LP1HLTCODE ENDS END START15. 某班有七个同学的英语成绩低于80 分,分数存在ARRAY 数组中,试编程完成以下工作:给每人加5分,结果存到NEW 数组中 .解:STACK SEGMENT STACKDB 100 DUP(?)STACK ENDSDATA SEGMENTARRAYDB 7 DUP(?)NEWDB 7 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,S
22、S:STACKSTART:MOV CX, 7MOV BX, 0LP1:MOV AL, ARRAYBXADD AL, 05HDAAMOV NEWBXI, ALINC BXLOOP LP1HLTCODE ENDSEND START调试程序:STACK SEGMENT STACKDB 100 DUP(?)STACK ENDSDATA SEGMENTARRAYDB65H,76H,78H,54H,90H,85H,68HNEWDB7 DUP(?)BUF1 DW 100 DUP (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: PUS
23、H DSMOV AX,DA TAMOV DS,AXMOV CX, 7MOV BX, 0LP1:MOV AL, ARRAYBXADD AL, 05HDAAMOV NEWBXI, ALINC BXLOOP LP1HLTCODE ENDSEND START某班有七个同学的英语成绩低于80 分,分数存在ARRAY 数组中,试编程完成以下工作:( 1)给每人加5 分,结果存到NEW 数组中( 2)把总分存到SUM 单元中( 3)把平均分存到AVERAGE 单元中解:STACK SEGMENT STACKDB 100 DUP(?)STACK ENDSDATA SEGMENTARRAYDB 7 DUP(?)
24、NEWDB 7 DUP(?)SUMDW 0AVGDB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV CX,7MOV SI,0MOV SUM, 0MOV AH, 0LP1:MOV AL,ARRAYSIADD AL, 05HDAAMOV NEWSI, ALADD AL ,SUMDAAMOV SUM,ALADC AH, 0DAAMOV SUM+1, AHINC SILOOP LP1MOV AX, SUMMOV BL,07HDIV BLMOV AVG, ALHLTCODE ENDSEND START 调试程序:STACK
25、SEGMENT STACKDB 100 DUP(?)STACK ENDSDATA SEGMENTARRAYDB65H,76H,78H,54H,90H,85H,68HNEWDB7 DUP(?)SUMDB00H,00HAVGDB 0BUF1 DW 100 DUP (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: PUSH DSMOV AX,DA TAMOV DS,AXMOV CX, 7MOV SI, 0MOV SUM, 0MOV AH, 0LP1:MOV AL, ARRAYSIADD AL, 05H DAAMOV NEWSI
26、, ALADD AL , SUM DAAMOV SUM,ALADC AH, 0MOV SUM+1, AHINC SILOOP LP1MOV AL, SUMMOV AH,SUM+1MOV BL,07H DIV BLMOV AVG, AL HLTCODE ENDS END START13. 设 CS=1200H, IP=0100H, SS=5000H, SP=0400H, DS=2000H, SI=3000H, BX=0300H, (20300H)=4800H, (20302H)=00FFH, TABLE=0500H, PROG_N 标 号的 地址为1200:0278 H , PROG_F 标 号
27、的 地址为3400:0ABCH 。说明下列每条指令执行完后,程序分别转移到何处执行?JMP 指令(1)JMP PROG_N段内直接近转移,目的地址为1200H:0278H( 或 12278H)(2)JMP BX段内寄存器间接转移,目的地址为1200H:0300H( 或 12300H)(3)JMP BX物理地址=DSX 10H+BX=2000H X 10H+0300H=20300H(20300H)=4800H f IP段内存储器间接转移,目的地址为1200H:4800H( 或 16800H)(4)JMP FAR PROG_F段间直接转移,目的地址为3400H:0ABCH( 或 34ABCH)(5
28、)JMP DWORD PTRBX物理地址=DSX 10H+BX=2000H X 10H+0300H=20300H(20300H)=4800H f IP, (20302H)=00FFH f CS段间存储器间接转移,目的地址为00FFH:4800H( 或 057F0H)JMP 改为 CALL 后,目的地址与JMP 相同。(1)CALL PROG_N段内直接调用,3字节指令,目的地址为1200H:0278H( 或 12278H), 0103H 入栈, SP=03FEH(2)CALL BX段内寄存器间接调用,2 字节指令,目的地址为1200H:0300H( 或 12300H) , 0102H 入栈,S
29、P=03FEH(3)CALL BX段内存储器间接调用,2字节指令,目的地址为1200H:4800H( 或 16800H), 0102H 入栈,SP=03FEH(4)CALL FAR PROG_F段间直接调用,5 字节指令,目的地址为3400H:0ABCH( 或 34ABCH) , 1200H 和 0105H 分别入栈,SP=03FCH(5)CALL DWORD PTRBX段间间接调用,2 字节指令,目的地址为00FFH:4800H( 或 057F0H), 1200H 和 0102H 分别入栈,SP=03FCH部分调试程序:STACK SEGMENT STACKDB 100 DUP(?)STAC
30、K ENDSDATA SEGMENTBUF DW 12BUF1 DW 100 DUP (?)ORG 300HDB 00H,48H,0FFH,00HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: PUSH DSMOV AX,DA TAMOV DS,AXMOV BX,0300HCALL PROG_N页眉内容CALL BXCALL BXORG 0278PROG_N:RETORG 0300HRETORG 4800HRETHLTCODE ENDSEND START14. 如在下列程序段的括号中分别填入以下指令:( 1) LOOP NE
31、XT(2) LOOPE NEXT(3) LOOPNE NEXTAX, BX, CX, DX 寄存器的内容分别是什么试说明在这三种情况下,程序段执行完后,START: MOV AX, 01HMOV BX, 02HMOV DX, 03HMOV CX, 04HNEXT:INC AXADD BX, AX SHR DX, 1DELAY5 : MOV CX, N4解:()LOOP 过程:AXBXCX初始值01H02H循环1 次02H04H循环2 次03H07H循环3 次04H0BH结果:循环4 次05H10HAXBXCX(1)05H10H00H(2)02H执行一次,ZF=0,04H退出循环。03H(3)0
32、3H执行两次,ZF=1 ,退出循环。07H退出循环。02HDX04H03 H03H 01H02H00H01H00H00H00HDX00H01H00H5ms 的子程序。20.设8086CPU的时钟频率为5MHz ,请编写延时解:微机的主频率为5MHz则:时钟周期=主频率的倒数=1/ (5X10-6) =0.2 s 延时5ms需要的时钟周期数 =5ms/ 0.2 s=25000延时子程序如下:页眉内容DLY1 : NOPLOOP DLY1RET应该有 25000=4+ 3 XN+ 17N=1250=04E2H延时子程为:DELAY5 : MOV CX , 04E2HDLY1 : NOPLOOP D
33、LY1RET3 X N17 X ( N-1) + 516X (N-1) + 5+16,才能实现要求的延时。则第4章作业P1535 .阅读下列程序,说明每条指令执行后的结果是什么?X1 DB 65H,78HX2 DW 06FFH, 5200HX3 DD ?GO: MOV AL, TYPE X1MOV BL, TYPE X2MOV CL, TYPE X3MOV AH, TYPE GOMOV BH, SIZE X2MOV CH, LENGTH X3解:(1)前三条语句的功能是设置数据于数据段中,从数据段偏移地址0000H开始存放。变量偏移地址X10000H0001HX20002H0003H0004H
34、0005HX30006H0007H0008H0009H程序汇编后结果如下:六条程序执行结果如下:(AL) =01H;设置变量类型属性,字节数(BL) =02H;设置变量类型属性,字节数(CL) =04H;设置变量类型属性,字节数(AH) =0FFH ;设置GO显示类型,近标号,为-1,补码表示(BH) =02H;设置数据类型,无 DUP时,返回数据类型的字节数(CH) =01H;无 DUP 时,返回 1。程序执行后结果如下:HU13CF:000013CF:0000IEPUSHDSL3CF;O001B0GE13EOU»XF13GE1JCF:0004QEDDMOWDG,AN物1(拓TW1
35、nonAU HI13CF:0000日地MOVBL, 0213CF:030AB104MDUCL. 0413GF;aaacH4FFEWftH.FF13Cr:000ED7B2nonDIL 02nCF:0AlHBEffinnutlH.fll13CF:n012IFPOPDS13CF:0013F4HLTisct.yun02B8FFFFADDBH,IBX+S1*FFFF113CF:0I318GWPU&H13CF:fiF119MDU13CF:001C50PJSH由X1丸上MIDLEAftX, LBP+FE/fi JHG-13CF;0000 13CF2O013lfiX=FFP11BX=fRP2CX=R1
36、DS=0OB0SP0664BP =0009 SI =ffl«0 DI=QeS0|Dt>=lJB7ES =±5E7s«=13C7CS=13CFIP =0613 NU UP EI PL NZ NA P0 NCE3CF:Uk113 F4HLT调试程序如下:STACK SEGMENT STACKDB100 DUPSTACK ENDSDATA SEGMENTX1 DB 65H,78HX2 DW 06FFH, 5200HX3 DD ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: PUSH DSMOV
37、 AX,DA TAMOV DS,AXGO: MOV AL, TYPE X1MOV BL, TYPE X2MOV CL, TYPE X3MOV AH, TYPE GOMOV BH, SIZE X2MOV CH, LENGTH X3POP DSHLTCODE ENDSEND START6 .画出示意图,说明下列变量在内存中如何让存放?A1 DB 12H,34HA2 DB Right.'A3 DW 5678HA4 DB 3 DUP(1)设置数据于数据段中,从数据段偏移地址0000H开始存放。变量偏移地址数据A10000H12H12.编程实现,从键盘输入一个十进制数09,查表求键入数字的七段代
38、码(共阳极LED显示器的段码),存入DL中,并在键入数字之前,显示提示信息“Please input a number(09):解:STACK SEGMENT STACKDB 100 DUPSTACK ENDSDATA SEGMENTTABLE DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H, 80H, 90HBUF DB 'Please input one number(0 9):',0DH,0AH,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES
39、:DATA页眉内容START: PUSHMOVMOVMOVMOVDSAX,DA TADS,AXDX,OFFSET BUFAH,09HMOVSI, ALINT 21HMOV AH,1INT 21HAND AL,0FHMOV BX,OFFSET TABLEXLATMOV DL,ALPOP DSHLTCODE ENDSEND START调试结果:数字5 的共阳极LED 七段码为92H 。15. 已知:在内存BUF 开始的单元中,存在一串数据:58, 75, 36, 42, 89。编程找出其中的最小值存入MIN 单元中,并将这个数显示在屏幕上。解:STACK SEGMENT STACKDB 100 D
40、UP(?)STACK ENDSDATA SEGMENTBUF DB 58H, 75H, 36H, 42H, 89HMIN DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACKSTART: PUSH DSMOV AX, DA TAMOV DS, AXMOV CX, 4MOV BX, OFFSET BUFMOV AL, BXST1: INC BXCMP AL, BXJBE NEXTMOV AL, BXNEXT:LOOP ST1MOV MIN, ALAND AL, 0F0HROR AL, CLADD AL, 30HMOV DL, ALM
41、OV AH, 02HINT 21HMOV AL, MINAND AL, 0FHADD AL, 30HMOV DL, ALMOV AH, 02HINT 21HPOP DSMOV AH, 4CHINT 21HHLTCODE ENDSEND START18. 某班有 20 个同学的微机原理成绩存放在LIST 开始的单元中,要求编程先从高到低的次序排列好,再求出总分和平均值,分别存放在SUM 和 AVER 开始的单元中。解:STACK ENDSDATA SEGMENTLIST DB 65H,76H,78H,54H,90H,85H,68H,66H,77H,88HDB 99H, 89H, 79H, 69H
42、,75H,85H,63H,73H,83H,93HSUM DW 0AVER DB 0BUF DB 100 DUP (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: PUSHMOVMOVMOVMOVLP0: MOVMOVLP1: MOVINCCMPJNCMOVMOVDSAX,DA TADS,AXDI, OFFSET LISTBX, 19SI, DICX, BXAL, SISIAL, SILP2DL, SISI-1, DL页眉内容LP2:LOOPLP1DECBXJNZLP0LP3:MOVCX, 20MOVBX, OFFSET
43、LISTMOVSUM, 0XORAX, AXLP4: ADDAL, BXDAAADCAH, 0INCBXLOOP LP4MOV SUM, AXMOV BL, 20HDIV BLADD AL,0DAAMOV AVER ALPOP DSHLTCODE ENDSEND START20. 编程将存放在AL 中的无符号二进制数,转化成十六进制数,再转换成ASII 码并显示在屏幕上。解:程序如下:STACK SEGMENT STACKDB 100 DUP(?)STACK ENDSDATA SEGMENTDB 100 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE, DS
44、:DATA, SS:STACKSTART: PUSH DSMOV AX, DA TAMOV DS, AXMOV DH, ALMOV CH, 02HST1: MOV CL, 4ROR DH, CLMOV AL, DHAND AL, 0FHADD AL, 30HCMP AL, 39H页眉内容JBE DISPADD AL, 07HDISP: MOV DL, ALMOV AH, 02HINT 21HDEC CHJNZ ST1POP DSMOV AH, 4CHINT 21HHLTCODE ENDSEND START调试程序如下:STACK SEGMENT STACKBUF DB 01111000BDB
45、100 DUP(?)STACK ENDSDATA SEGMENTDB 100 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACKSTART: PUSH DSMOV AX, DA TAMOV DS, AXMOV AL, BUFMOV DH, ALMOV CH, 02HST1: MOV CL, 4ROR DH, CLMOV AL, DHAND AL, 0FHADD AL, 30HCMP AL, 39HJBE DISPADD AL, 07HDISP: MOV DL, ALMOV AH, 02HINT 21HDEC CHJNZ ST
46、1POP DSMOV AH, 4CH页眉内容INT 21HHLTCODE ENDSEND START21. 编写程序,使用三种以上的方法,将存储器中2000H 开始的地址单元中的100 字节数据复制到3000H 开始的存储器地址单元中。解:( 1 )利用通用传送指令MOVMOV SI , 2000H注意这里如果是标号地址,则必须用OFFSETMOV DI , 3000HMOV CX , 100LP1 : MOV AL , SIMOV DI , ALINC SIINC DILOOP LP1HLTMOV CX , 100MOV BX , 0LP0: MOV AL , 2000BXMOV 3000B
47、X , ALINC BXLOOP LP0 HLT ( 2)利用交换指令XCHGMOV SI , 2000H MOV DI , 3000H MOV CX , 100 LP2:MOV AL , SIXCHG DI , AL INC SI INC DI LOOP LP2 HLT ( 3)利用换码指令XLATMOV BX , 2000HMOV DI , 3000HMOV CX , 100LP3: XOR AL , ALXLATMOV DI, ALINC BXINC DILOOP LP3 HLT ( 4)利用堆栈实现数据传送MOV SI , 2000HMOV DI , 3000HMOV CX , 50L
48、P4:PUSH SIPOP DIINC SIINC SIINC DIINC DILOOP LP4 HLT( 5)利用串操作指令REP MOVSBMOV SI , 2000HMOV DI , 3000HMOV CX , 100CLD; DF=0, SI、 DI 自动 +1REP MOVSBHLT调试程序:STACK SEGMENT STACKDB 100 DUP(?)STACK ENDSDATA SEGMENTORG 2000HDB 11H,22H,33H,44H,55H.66H,77H,88H,99HDB 100 DUP(?)ORG 3000HDB 100 DUP(?)DATA ENDSCOD
49、E SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:PUSH DSMOV AX,DA TAMOV DS,AXMOV SI,2000HMOV DI,3000HMOV CX,100LP1: MOV AL,SIMOV DI,ALINC SIINC DILOOP LP1POP DSHLTCODE ENDSEND START22. 在 DATA 开始的4 个单元中存放着一个32 位数, 求出其中的“ 1的个数,”并存入 COUNT 单元中。解:DATA SEGMENTDATA1 DBCOUNTDATA ENDS0FEH, 86H, 7CH, 35HDB 00HST
50、ACKSTACKCODESEGMENTDB 100 DUP(?)ENDSSEGMENTCS: CODE , DS: DATA, SS: STACK DSMOVAX, DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVSI,OFFSETMOVBX,SIMOVDX,SI+2MOVCX,32XOR AL , ALLP1 : RCRDX,1RCRBX,1JNCLP2INCALLP2: LOOPLP1MOVCOUNT, ALPOPDSDATA1ASSUMESTART: PUSHMOV AH , 4CHINT 21HHLTCODE ENDSEND START1. 下列变量各占多少字节?A1DW23H ,5876H4 字节A2DB3 DUP(?) , 0AH , 0DH , $6 字节A3DD5 DUP (1234H , 567890H )4X 2X5=40 字节A4DB4 DUP(3 DUP ( 1 , 2, ABC ) )5X3X4=60 字节调试程序:STACK SEGMENT STACKDB 100 DUP(?)STACK ENDSDATA SEGMENTDA1DW 23H,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吃住旅游安全协议书
- 2025年03月浙江嘉兴市海宁市事业单位公开招聘工作人员49人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 2025年上海市15区高三语文二模试题汇编之现代文二(教师版)
- 徐州医科大学《学术写作与文献检索》2023-2024学年第一学期期末试卷
- 浙江省宁波市慈溪市部分校2025届数学五年级第二学期期末考试模拟试题含答案
- 成都工贸职业技术学院《中国现当代文学作品选二》2023-2024学年第一学期期末试卷
- 广东建设职业技术学院《高分子材料与应用》2023-2024学年第二学期期末试卷
- 邢台应用技术职业学院《英语新闻阅读与思辨》2023-2024学年第二学期期末试卷
- 江苏城市职业学院《社会调查与统计分析》2023-2024学年第一学期期末试卷
- 百色学院《互动媒体设计》2023-2024学年第一学期期末试卷
- 人教版七年级地理(下)全册复习教案(含教学反思)
- JJF 1603-2016(0.1~2.5)THz太赫兹光谱仪校准规范
- 医药卫生病原微生物检测技术知识与技能比武竞赛题库
- 《民法典》-第二编 物权编-案例分析,解读-3
- 膜片钳常见问题汇总(人人都会膜片钳)
- 讲故事技能培训
- 海岸动力学全册配套完整课件
- 工作面防飞矸封闭式管理规定
- 干部人事档案管理岗位培训的讲义课件
- 财务人员廉政谈话记录 财务个人谈话记录3篇
- 沪教牛津版小学三至六年级英语单词表
评论
0/150
提交评论