版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、习题二IA-32 结构微处理器主要内容:主要介绍8086/8088CPU内部结构。了解 80X86CPU的特点。2.1 8086 CPU在内部结构上由哪几部分组成 ?其功能是什么?【答】8086的内部结构成两部分:总线接口部件BIU,负责控制存储器读写。执行部件EU,EU从指令队列中取出指令并执行。8086是16位微处理器,有16根数据线、20根地址线,内部寄存器、算术逻辑部件为16位。2.2 8086的总线接口部件有那几部分组成?【答】8086的总线接口部件主要由下面几部分组成:4个段寄存器 CS/DS/ES/SS, 个16位的指令指针寄存器IP, 个20位地址加法器,6字节的指令队列,内部
2、暂存器以及输入输出电路组 成2.3 8086的执行部件有什么功能 ?由那几部分组成?【答】8086的执行部件主要由下面几部分组成:(1)四个16位通用寄存器 AX BX CX DX,四个16位专用寄存器,包括二个指针寄存器 SP BP,二个变址寄存器 SI、DI,算术逻辑单元 ALU, 标志寄存器。2.4 8086CPU状态标志和控制标志又何不同?程序中是怎样利用这两类标志的? 8086的状态标志和控制标志分别有哪些?【答】标志分两类:状态标志(6位),反映刚刚完成的操作结果情况,包括零标志ZF、符号标志SF、奇偶标志PF、进位标志CF辅助进位标志 AF、溢出标志 OF。控制标志(3位),在某
3、些 指令操作中起控制作用,包括单步运行标志 TF、方向标志DF与中断允许标志IF。利用状态标 志可以掌握当前程序操作的结果,例如了解是否产生进位,是否溢出等。2.5 8086/8088和传统的计算机相比在执行指令方面有什么不同?这样的设计思想有什么优点?8086CPU执行转移指令时,指令队列寄存器内容如何变化?【答】传统的计算机一般按照取指令、指令译码/执行指令的步骤工作。在 8086/8088中,指令的提取与执行分别由总线接口部件BIU与执行部件EU完成,8086/8088可以在取指令同时又可以执行指令,这种并行工作方式有力的提高了CPU的工作效率。2.6 将两数相加,即0100 1100力
4、口0110 0101 , CFPF、AF、ZF、SF、OF各为何值?【答】0100 1100+0110 0101=10110001CF=0, PF=1, AF=1, ZF=0, SF=1, OF=12.7 存储器的逻辑地址由哪几部分组成?存储器的物理地址是怎样形成的? 一个具有20位地址线的CPU其最大物理地址为多少?【答】存储器的逻辑地址由段地址与段内偏移地址组成。存储器的物理地址:将16位段地址左移4位后加上16位段内偏移地址,形成20位物理地址。一个具有 20位地址线的CPU其最大物理地址为220=1MB2.8 现有6个字节的数据分别为 11H, 22H, 33H, 44H, 55H,
5、66H,已知它们在存储器中的物理地 址为400A5H-400AAH若当前(DS = 4002H,请说明它们的偏移地址值。如果要从存储器 中读出这些数据,需要访问几次存储器,各读出哪些数据?【答】由于:物理地址=400A5H=地址*16+偏移地址=40020H+偏移地址偏移地址=400A5+40020=85H从奇地址 400A5H中读出:11H;从偶地址 400A6H读出一个字:22H, 33H;从偶地址 400A8H 读出一个字:44H, 55H;从偶地址 400AAH中读出:66H。共读4次。2.9 已知当前数据段中存有如下图所示的数据,现要求将最后两个字节改成ODH OAH请说明需给出的段
6、基值和偏移地址值,并说明其写入过程。【答】数据段段地址=150AH偏移地址=0004H°CPU的总线接口部件根据数据段寄存器的内容150AH左移4位,在加上偏移地址 0004H,形成20位物理地址150A4H,由总线接口送出,选中物理 存储单元150A4H 150A5H,数据ODH通过数据总线送入 150A4H,数据OAH通过数据总线送入 150A4H。2.10在8088/8086 中,逻辑地址 FFFF: 0001, 00A2: 37F和B800: 173F的物理地址分别是多少? 2.11在8088/8086中,从物理地址 388H开始顺序存放下列三个双字节的数据,651AH, D
7、761H和007BH,请问物理地址 388H, 389H, 38AH, 38BH, 38CH 和38DH 6个单元中分别是什么数据?【答】物理地址388H38DH单元中的数据如下表:地址388H389H38AH38BH38CH38DH数据1AH65H61HD7H7BH00H2.12 8086CPU的形成三大总线时,为什么要对部分地址线进行锁存?用什么信号控制锁存?【答】 为了确保CPU对存储器和I/O端口的正常读/写操作,要求地址和数据同时岀现在地址总线和数 据总线上。而在 8086CPU中ADOAD15总线是地址/数据复用的,因此需在总线周期的前一部分传 送岀地址信息,并存于锁存器中,而用后
8、一部分周期传送数据。8086CPU中是通过CPU送岀的ALE高电平信号来控制锁存的。2.13段寄存器CS=1200H,指令指针寄存器IP=4000H,此时,指令的物理地址为多少 ?指向这一物理地址的 CS值和IP值是唯一的吗?【答】此时,指令的物理地址为16000H;这一物理地址的CS值和IP值不是唯一的,例如:CS=1000H,IP=6000H 。2.14 80386最重要的技术特点是什么?【答】速度大大提高:时钟达 12MHZ/16MHZ (2)寻址空间大大扩展:4GB物理空间,64TB (64GGB) 虚拟空间,(3) 除了保持80286的实地址方式和保护方式外,增加了虚拟8086方式。
9、(4) 80386设置了转换检测缓冲器,大大加快了存储器访问速度。2.15 80386 的内部有哪些部件?【答】80386功能部件包括总线接口部件BIU、指令预取部件IPU、指令译码部件IDU、指令执行部件 EU存储器管理部件 MMU即分页部件PU与分段部件SUL2.16 80386 CPU 有几种工作方式?【答】80386的实地址方式、80386的虚拟保护方式与虚拟8086方式。2.17 简述80386 CPU的实地址方式特点。【答】80386上电或复位时,处于实地址方式,主要为80386进行初始化工作。特点:(1)实地址方式采用类似8086体系结构,寻址机构、存储器管理与中断处理机构与80
10、86 一样。(2)操作数默认长度为16位,但允许访问 80386的32位寄存器组,在使用时指令中要加上前缀以表示越权存取。(3)存储器寻址空间最大1M字节。(4)实地址方式下,存储器中保留两个固定区域,一个为初始化程序区:FFFF0FFFFFH另一个为中断向量区 00000003FFH。(5)80386 具有4个特权级,实 地址方式下,程序在最高级(0级)上执行。2.18 简述80386的虚拟保护方式特点。【答】80386的存储器的虚拟保护方式: 80386上电或复位后,先进入实地址方式完成初始化,然后转到保护方式。在保护方式,虚存空间可达4GB X 16K =64MMB=64GB程序员借助于
11、存储管理部件(MMU)功能将磁盘等存储设备映射到内存,使逻辑地址大大超过实际物理地址空间。在保护方式,可以使用80386的4级保护功能,为多任务操作系统提供支持。2.19虚拟8086方式有什么特色?为什么要设置这种方式?【答】(1)可以执行8086的应用程序。(2)段寄存器的用法和实地址方式时一样,即段寄存器内容 左移4位加上偏移量为线性地址。(3)存储器寻址空间为一兆字节,但可以使用分页方式,将一兆字节分为256个页面,每页4K字节。在80386多任务系统中,可以使其中一个或几个任务使用 虚拟8086方式。此时,一个任务使用的全部页面可以定位于某个物理地址空间,另一个任务的页 面可以定位于其
12、他区域,即每个虚拟8086方式下的任务可以转换到物理存储器的不同位置。(4)虚拟8086方式中,程序在最低特权级(3级)上运行,因此,80386指令系统中的一些特权指令不 能使用。虚拟8086方式是80386中很重要的设计特点,可以使大量的 8086软件有效的与 80386保护方式下的软件并发运行。2.20 80386 有哪两种模拟 8086的方式?【答】80386有两种模拟8086的方式,一种是实地址方式,一种是虚拟8086方式。80386上电或复位时,处于实地址方式。在保护方式下,可以通过软件切换到虚拟8086方式,运行8086程序。2.21 80386采用几种描述符表?这些表的设置带来什
13、么优点?【答】80386共设计三中描述符表即:全局描述符表,局部描述符表,中断描述符表。采用描述符表带来如下三方面的优点:1 可以大大扩展存储空间;2 .可以实现虚拟存储;3.可以实现多任务隔离。2.22 80386 在3种工作方式下,"段"的长度有什么差别 ?实地址方式,段的大小固定64K字节。保护方式,段的大小是可以选择的,从1字节到4千兆字节。虚拟8086方式,对程序员来说,段长度固定为64K。2.23 Intel86系列CPU是从哪一种芯片开始采用RISC技术的?你能说说RISC技术最重要的特点和优点吗?【答】80486是首次采用RISC技术的。80486把8038
14、6和浮点运算协处理器 80387及8KB的超高速缓存 器集中到一个芯片中,且支持二级Cache。80486能在一个时钟周期执行一条指令。2.24 80486 和80386相比,有什么技术特点 ?【答】(1) 80486是首次采用 RISC技术的;(2)采用片内高速缓存和片内浮点运算协处理器;(3)80486采用一种突发式总线方式实现CPU和内存的高速数据交换;(4) 80386可以模拟多个8086来实现多任务功能。2.25 Pentium有哪些技术特点?你认为在Pentium基础上主要应从哪几个方面可再作改进?【答】 采用超标量双流水线结构,每个流水线包含5个步级。 内部采用2个彼此独立的8K
15、B数据高速缓存,这两个高速缓存可以同时被访问。Pentium内部数据总线为 32位,但是cpu和内存进行数据交换的外部数据总线为64位,使一个总线周期的数据传输量提高一倍。 采用36位地址总线,扩展了寻址空间。对mov、push、dec、inc等常用指令不用微程序而用硬件实现;采用分支预测技术提高流水线效能。采用分支预测技术提高流水线效能。浮点运算执行过程分为8个流水步级。pentium也存在一些缺点,如功耗大,达15w,浮点运算功能仍低于一些RISC处理器。2.26选择题(1) 80386共有()个弓I脚信号,采用()封装。A . 128,PGA B . 132,LCC C . 132,PG
16、A D . 128,LCC【答】C80386 内部可以分为()个部件。A . 8B. 6 C . 4 D. 2【答】B(3) 80386有()条地址信号线和()条数据信号线A.32, 32B.32,24 C . 24,32 D.20, 32【答A(4)外部CLK2的频率是80386内部时钟信号频率的()倍 .A.5B.4C. 3D.2【答D(5)80386的HLDA信号是对()的应答信号A . HOLD B . BUSRQ C . INTR D . DMARQ 【答】A(6)80386的流水线方式请求信号是()。A . ND # B . NC#C . NB # D . NA #【答】D(7)8
17、0386的执行部件可分为()子部件。A .控制部件B .数据部件C .保护测试部件D. A 和BE. B 和 C F. A .B和 C答 F(8)80386 在保护模式下工作时,可以有()个特权级A . 5B. 4 C . 3 D. 2【答B习题三8086指令系统主要内容:8086指令系统。主要介绍8086的基本数据类型、寻址方式和指令系统,重点掌握8086 指令系统的寻址方式、堆栈操作指令、算术运算指令及其对标志位的影响,串操作指令,控制传送指令。3.1下面这些指令哪些是正确的?哪些是错误的?如是错误的,请说明原因。XCHGCS,AX()MOVBX,1000()PUSHCS()POPCS()
18、INBX,DX()3.2单选题:(1)执行下面指令序列后,结果是()。MOV AL ,82HCBWA、 AX=0FF82HB、AX=8082HC、AX=0082HD、 AX=0F82H【答A(2)与 MOV BX,OFFSET VAR指令完全等效的指令是()。A、MOVBX,VARB、LDS BX,VARC、LESBX,VARD、LEA BX,VAR【答】D(3)编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有()。A、 CMPB、SUBC、ANDD、MOV【答】D(4)下面指令执行后,改变 AL寄存器内容的指令是()。A、TEST AL ,C、CMP AL ,【答】
19、D(5)设 DH=10H,执行02HOR AL,ALAND AL,BLNEG DH指令后,正确的结果是 ()。【答】DA、DH=10H CF=1C、DH=10H CF=0(6)设 DS=8225H , DI=3942H ,A、 85B92HDH=0F0H CF=ODH=0F0H CF=1指令 NEG BYTE PTRDI操作数的物理地址是)。B、 86192HC、 BB690HD、12169H0TAL。F面程序段正确的是)。A、MOVJSSHRAL , BUFK1AL , 1K1AL , 0K1 :JNCMOVB、MOVAL , BUFANDAL , 11JNZK2MOVAL , 0K2 :C
20、、MOVAL , BUFTESTAL , 81HJNZK3MOVAL , 0K3 :D、MOVAL , BUFJNPK4TESTAL , 80HJNZK4MOVAL , 0K4 :执行速度最快的是(【答】A(7)检查BUF的内容是否为正偶数,如是正偶数,)。【答】C(8)下列指令中,A、 MOVAX,100MOVAX,BX【答】CC、 MOVAX,BXMOVAX,BX+BP3.3 已知(DS) = 091DH , (SS) = IE4AH , (AX ) = 1234H , ( BX ) = 0024H , ( CX) = 5678H , (BP) = 0024H , ( SI) = 0012
21、H , ( DI ) = 0032H , : 09226 = 00F6H , : 09228 =1E40H , :1E4F6 =091DH,试求单独执行下列指令后的结果?(1) MOV CL , 20H BXSI;【答】由于源操作数有效地址EA=20H+0024H+0012H=0056H,其物理地址 PA=DS*16+EA=091DH*16+56H=09226H, 因此(CL) = F6H(2) MOV BPDI ,CX ;【答】由于目的操作数有效地址EA= 0024H + 0032H=0056H,目的操作数物理地址 PA= SS*16+EA=1E4A0H+0056H=1E4F6H, 因此1E
22、4F6=5678H(3)LEAMOVBX , 20H : BX SIAX , 2BX答第-条指令:源操作数物理地址PA = 091D0H+(20+0024H+0012H)=09226H, 因此(BX ) =0056H第二条指令:源操作数物理地址PA = 091D0H+(2+0056)=09928H, 因此(AX ) =1E40H(4)LDSSI , BXDIMOVSI , BX答第-条指令:源操作数物理地址PA=091D0H+(0024H+0032H)=09226H因此(SI)= 00F6H, (DS)=1E40H第-条指令:目的操作数物理地址PA= 1E400H+00F6H=1E4F6H因此
23、1E4F6H单元的内容为 0024H,即1E4F6H=0024H(5)XCHGCX , 32HBXXCHG 20BXSI, AX【答】同理可得: (CX ) = 00F6H (AX ) = 00F6H , 09226H= 1234H3.4 8086 CPU执行如下指令后MOVAL ,01100100BSUBAL ,58H;(AL)=0CH,AF=1,CF=0DAS;(AL)=06,AF=1,CF=0【答】 首先用TD调试验证上面的结果;自己定义两个数据,重新验证,写岀结果。3.5 设(IP) = 3D8F H , (CS) = 4050H , (SP)= 0F17C H,当执行 CALL 20
24、00 : 0094H 后,试求岀 IP、CS、SP、:SP、:SP+ 1 :SP+ 2 和SP+3的内容?【答】(IP)=0094H ,( CS)=2000H,(SP)=F178HSP=8FH ,SP+1=3DH ,SP+2=50H, SP + 3=40H,SP+3=40H3.6设(DS) = 2000H , ( BX ) = 1256H , ( SI) = 528FH 264E5H = 2450H,执行下述指令,TABLE的偏移量=20A1H , :232F7H =3280H ,(1) JMP BX; IP= 1256H(2) JMP TABLE : BX ; IP= 3280H(3) JM
25、P : BX SI; IP= 2450H3.7分别用一条语句实现下述指明的功能(1 )栈顶内容弹岀送字变量DI。(POPDI )(2)双字变量 AYD存放的地址指针送 ES和SIo(LESSI , AYD )(3)不允许中断即关中断。(CLI )(4)子程序返回调用程序。(RET )(5) AX的内容加1,要求不影响 CF o(INCAX )(6) BX的内容加1,要求影响所有标志位。(ADDBX, 1 )(7)若操作结果为零转向标号GOON o(JZGOON )3.88086/ 8088用什么途径来更新CS和IP的值?【答执行CALL、JMP、INT指令,可以改变 CS和IP中的值,即改变程
26、序走向。3.9字节扩展指令和字扩展指令用在什么场合?举例说明。【答】需要对带符号数字节扩展为字时,要预先执行CBW指令。需要对带符号数字扩展为双字时,预先执行CWD。AX,-503BX,267【答】例:求-503/267=?,将商存1000H单元.MOV MOV CWD IDIV3.10 设 DS=2100H,SS=5200HMOVWORDMOVWORDMOV HLT1000H,AX3.11以下是格雷码的编码表BX=1400H , BP=6200HPTR BX, 2000说明下面两条指令所进行的具体操作PTRBP,00000 , 1 0001 , 2 00113 001050111,6 010
27、1,70100请用换码指令和其他指令设计一个程序段,实现格雷码往81100ASCII的转换。200001101101【答】格雷码ASCII 码000030H000131H001033H001132H010037H010136H011034H011135H10000100101010010110110038H110139HTABLE SEGMENTTAB_DA DB 30H,31H,33H,32H,37H,36H,34H,35H,0,0DB 0,0,38H,39HGRADB 05HASCII_DA DB ?TABLE ENDSCODE SEGMENTASSUME CS:CODE,DS:TABLE
28、START: MOV AX,TABLEMOVDS,AXMOVBX,OFFSET TAB_DAMOVAL,GRAXLATMOV ASCII_DA,ALCODE ENDSEND START3.12 8086状态标志寄存器中,作为控制用的标志位有(3 )个,其中,不可用指令操作的是 (DF、IF、TF)3.13设当前的SP=1000H,执行PUSHF指令后,SP=( 0FFE H ),若改为执行INT 20H指令后,贝U SP= (0FFA H )。【答】执行 PUSHF指令后,SP= (0FFE H )。执行INT 20H指令后,则 SP= ( 0FFA H )。3.14设当前 SS=2010H,
29、SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执行 PUSH BX 指令 后,栈顶地址和栈顶 2个字节的内容分别是什么?【答】当前栈顶指针 (SP)=2FF00H,物理地址=20100H+FE00H=2FF00H当执行PUSH BX 指令后,栈顶指针(SP) =FE00-2=FDFEH,栈顶物理地址=2FDFEH,栈顶 2个字节的内容分别 57H,34H。3.15 HLT指令用在什么场合?如 CPU在执行HLT指令时遇到硬件中断并返回后,以下应执行哪条指 令?【答】HLT 用在使 CPU 处于暂停状态而等待硬件中断的场合。 在执行HLT指令遇到硬件中断并返回后将执行HLT后面
30、的一条指令。3.16为什么用増量指令或减量指令设计程序时,在这类指令后面不用进位标志作为判断依据?【答】増量指令或减量指令不影响进位标志CF。3.17用普通运算指令执行 BCD码运算时,为什么要进行十进制调整?具体讲,在进行BCD码的加、减、乘、除运算时,程序段的什么位置必须加上十进制调整指令?【答】在BCD码中,采用4位二进制数对一个十进制数的编码,只允许0 9这10个数字岀现,但CPU运算结果一般会超过此范围,因此要进行十进制调整。进行加、减法或乘法运算时,调整指令必须 紧跟在算术指令后面,在进行除法运算时,调整指令放在除法指令之前。3.18中断指令执行时,堆栈的内容有什么变化?中断处理子
31、程序的人口地址是怎样得到的?【答】中断指令执行时,堆栈内容变化如下:标志寄存器被推入堆栈,且SP减2,然后CPU将主程序的下一条指令地址即断点地址推入堆栈,即段值CS推入堆栈且SP减2,偏移量推入堆栈,且 SP减2。中断处理子程序的入口地址即中断向量,对应的中断类型号的4倍即为中断向量地址,在该地址处的4个字节内容,高地址单元两个字节为中断入口地址的段地址,低地址单元两个字节为中断 入口地址的偏移地址。3.19中断返回指令IRET和普通子程序返回指令 RET在执行时,具体操作内容什么不同?【答】IRET从堆栈中依次弹岀断点处指令指针IP、代码段CS内容与标志寄存器的值,而RET从堆栈中依次弹出
32、断点处指令指针IP值、代码段CS内容,不需要弹出标志寄存器的值。3.20将存放在0A00H单元和0A02H单元的两个无符号数相乘 ,结果存放在地址为 0A04H开始的单元中。 【答】参考程序:MOVAL,0A00HMOVBL,0A02HMULBLMOV0A04,AX3.21编程序将AX中数,最高位保持不变,其余全部左移4位。【答】参考程序:MOVANDBX, AXBX ,8000HMOVCL, 4SHLAX, CLANDAX,7FFFHORAX, BX3.22将0400H单元中的数,低4位置零,高4位保持不变。【答】参考程序:MOVAL, 0400HANDAL, 0F0HMOV0400H, A
33、L3.23将BX中的数,对高位字节求反,低位字节保持不变。【答】参考程序:NOTBH3.24检测Bx中第13位(D13),为0时,把AL置0,为1时,把AL置1。【答】参考程序:TESTBX,0010 0000 0000 0000BJZZEROMOVAL,01HHLTZERO:MOVAL,0HLT3.25利用字串操作指令将1000H10FFH 单元全部清零。【答】参考程序:CLDMOVDI,1000HMOVCX,100HMOVAL,0REPSTOSB3.26从1000H开始,存放有200个字节,要查岀字符#(ASCII码为23H),把存放第一个#的单元地址送入BX中。【答】参考程序:CLDMO
34、VDI,1000HMOVCX,200MOVDX,CXMOVAL,23HREPNZSCASBJZFINDJMPNOFOUNDFOUND: DECDIMOVBX,DINOFOUND:HLT3.27编程计算(X+Y)*10)+Z)/X, X、Y、Z都是16位无符号数,结果存在 RESULT开始的单元。【答】参考程序:MOVAX,XADDAX,YMOVMULBX,0AHBXADDAX,ZADCMOVDX,0HBX,XDIVBXMOVRESULT,AXMOVHLTRESULT+2,DX3.28用简单指令编程求-3/2=?,将商存DL,余数存DH单元。用TD调试后,写岀DL,DH的内容【答】参考程序:MO
35、VAL,-3CBWMOVBL,2IDIVBLMOVDL,ALMOVDH,AHHLT习题四 汇编语言程序设计主要内容:汇编语言程序设计。主要介绍汇编语言程序的设计方法与编程原理,重点掌握算术运算程序、字符串处理程序、码制转换程序、子程序设计程序、常用DOS和BIOS功能调用程序、汇编语言常用伪指令。4.1分析执行下列指令序列后的结果:1)MOVAX,1234HMOVBX,OOFFHANDAX,BX【答】(AX)=0034H2)MOVAL,01010101BANDAL,00011111B;(AL)=00010101BORAL,11000000B;(AL)=11010101BXORAL,000011
36、11B;(AL)=11011010BNOT AL【答】(AL)=00100101B3)MOVDL,05HMOVAX,0A00HMOVDS,AXMOVSI,0HMOVCX,0FHAGAIN:INCSICMP SI,DL LOOPNE AGAINHLT本程序实现了什么功能?【答】在以0A001H开始的15个单元中查找 05H。4)MOVAX,DSEGADDRMOVDS, AXMOVES,AXMOVSI, OFFSET B1ADDRMOVDI,OFFSET B2ADDRMOVCX,NCLDREPMOVSBHLT答将 B1ADDR中N个字节数据传送到5)MOVAX, 0HMOVDS,AXMOVES,
37、AXMOVAL,05HMOVDI,0A000HMOVCX,0FHCLD本程序实现了什么功能?AGAINB2ADDR开始的15个存储单元 。开始的15个单元中查找字节型数据05H,用条件循环 LOOPNZ,控制数据05H的查找。4.2阅读程序1).CLDLEADI, 0100HMOVCX, 0080HXORAX, AXREPSTOSWOA000H本程序实现了什么功能?I将DS中起始地址为 0100H的128个字节单元清零。【答】AGAIN:SCASBLOOPNE HLT本程序实现了什么功能? 【答从地址MOVDX , 3F08HMOVAH , 0A2HMOVCL , 4SHLDX , CL;(D
38、X)=F080HMOVBL , AHSHLBL , CL;(BL)=20HSHRBL , CL;(BL)=02HORDL , BL;(DL)=82H【答将DX中的低4位数据8H分离岀来,将 AH中的低4位数据2H分离岀来,DL。4.4 已知程序段如下:MOVAX , 1234HMOVCL , 4ROLAX , CLDECAXMOVCX, 4MULCX试问:(1)每条指令执行后,AX寄存器的内容是什么?(2 )每条指令执行后值分别是什么?(3)程序运行结束时,AX及DX寄存器的值为多少?答MOVAX , 1234H;(AX)=1234H, CF=SF=ZF=0MOVCL , 4合并为 82H存放
39、在答4.3试分析下列程序完成什么功能?, CF, SF 及 ZF 的MOVAL, 08HSALAL,01H;(AL)=00010000HMOVBL, ALMOVCL ,02HSALAL,CL;(AL)=01000000HADDAL,BL;(AL)=01010000H本程序实现了什么功能? 将AL中的内容乘以102).ROLAX,CL;(AX)=2341H ,CF=1,SF=ZF=0DECAX;(AX)=2340H, CF=1,SF=ZF=0MOVCX,4MULCX;(AX)= 8000H ,CF=ZF=0,SF=1,DX=04.5试分析下列程序段:ADDAX,BXJNCL2SUBAX,BXJN
40、C L3JMP SH0RTL5如果AX、BX的内容给定如下:AXBX(1)14C6H80DCH(程序转向L2)(2)B568H54B7H(程序转向SHORTL5 )问该程序在上述情况下执行后,程序转向何处?【答】(1)程序转向L2。(2)程序转向 SH0RTL5。4.6以下为某个数据段,试问各个变量分别占多少字节,该数据段共占多少字节?DATASEGMENTVAR1DW 9;2字节VAR2DD 10 DUP( ? ),2;44字节VAR3DB 2 DUP( ?,10 DUP( ?);22字节VAR4DB ' HOW ARE YOU'11字节DATAENDS【答】该数据段共占 7
41、9字节。4.7下列语句在存储器中分别为变量分配多少字节空间?并画岀存储空间的分配图VAR1DB 10, 2;2字节VAR2DW 5DUP (?),0;12字节VAR3DB ' HOW ARE YOU ?', $'13字节VAR4DD -1,1,0;2字节Var1Var2Var3Var410?FFH2?UP 00H?O00H?Y00H?01H?E00H?R00H?A00H?r 00H?W00H0O00H0H00H$4.8 编写一段程序,比较两个5字节的字符串 OLDS和NEWS,若相同,在RESULT置0,否则置0FFH 【答】参考程序:OLDSDB 1,2,3,4,5N
42、EWSDB 1,2,3,4,5RESULTDB ?MOVSI,OFFSETOLDSMOVDI,OFFSETNEWSMOVCX,10CLDREPCMPSBJNZNOEQU;串不相等转MOVAL,0JMPOUTPTNOEQU:MOVAL,0FFHOUTPT:MOVRESULT,ALSTOP:JMPSTOP4.9编程求和Y=A1+ A2 +.+ A100 。其中 Ai为字节变量【答】参考程序:DATASEGMENTTABLEDW12, 3, 45,.?YALYAHDATADWDWENDSMIANPROCFARPUSHDSMOVAX, 0PUSHAXMOVAX, DATAMOVDS, AXMOVDX,
43、0XORAX, AXMOVBX, OFFSET TABLEMOVCX, 4CLCLP:ADDAX, BXJNCDONINCDXCLCDON:INCBXINCBXLOOPLPMOVYAL,AXMOVYAH,DXMAINENDPCODEENDSEND START内存中以;清 AX;求和;指向下一个数;未加完,继续;存和FIRST和SECOND开始的单元中分别存放着两个16位组合的十进制(BCD码)数,低位在,并存到以THIRD开始的单元。答参考程序:1325+9839=?DATASEGMENTFIRSTDB05H,02H,03H,01H ;SECOND DB09H,03H, 08H,09H;THI
44、RD DB20 DUP (?)DATAENDSSTACKSEGMENTST1DB100DUP ( ' SA')TOP1EQUST1 LENGTH ST1STACKENDSCODESEGMENTASUMMECS:CODE,DS:DATA,SS:STACKMAINPROCFARSTART: MOVAX, DAT;初始化数据段MOVDS, AXMOVAX, STACK;初始化堆栈段MOVSS, AXMOVAX, TOP1MOVSP, AXMOVCX, 4;计算4次MOVBX, OFFSET DAT1;取数据地址4.10前。编程序求这两个数的组合的十进制和MOVSI , OFFSET
45、DAT2;取数据地址MOVDI , OFFSET SUM;取结果地址MOVAH, OOH;将暂存标志的AH清0DON1:MOVAL, BX;取第一个数SAHF;将AH中的标志送标志寄存器ADCAL, DI;与第二个数带进位加AAA;十进制校正LAHF;将标志寄存器内容送 AHORAL, 30H;计算值拼成ASCII码MOVDI, AL;存结果的ASCII码INCBX;指向第一个数的下一位INCSI;指向第二个数的下一位INCDI;指向结果单元的下一位LOOPDON1;未计算完,继续ANDAH, 01H;将最高位的进位标志送 AHORAH, 30H;最高位的进位位拼成ASCII码MOVDI, A
46、H;存结果的最高位MOVAH, 02H;调用DOS的02H功能显示MOVCX, 05H;显示数据的位数DON2:MOVDL,DI;显示数据送DLINT21H;显示DECDI;显示数据所在存储单元加一LOOPDON2;未显示完,继续MOVAH, 4CH;返回DOSINT21HRETMAINENDPCODEENDSENDSTART4.11试编程序,统计由40000H开始的16K个单元中所存放的字符“A “的个数,并将结果存放在中。【答】参考程序DXDATASEGMENTDATA1DB'DFASFAAAFDFAAFFFA'COUNT EQU$-DATA1DATAENDSSTACKSE
47、GMENTSTADB 100DUP(?)TOPEQU LENGTHSTASTACKENDSCODESEGMENTASSUME CS:CODE,DS:DATA,SS:STACKBEGIN:MOVAX,DATAMOVDS,AXAX,STACK SS,AX AX,TOP SP,AX CX,COUNT DX,0 SI,DATA1 BL,'A' SI,BL OTHER DXMOVMOVMOVMOVMOVMOVLEAMOVNEXT :CMPJNZINCOTHER:INC SILOOP NEXTCODEENDSBLOCKDB -1,-3,5,6,-2,0,20,10PLUS_DDB8 DUP(?);正数缓
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年瓦工工程承揽协议范本版B版
- 2024年货物买卖合同(含运输)
- 2025版知识产权许可使用合同协议书范本
- 2024年资深销售顾问雇佣合同
- 2024年粮油期货交易合约
- 2024年特辑:景点门票预订协议(适用于在线旅游平台)
- 2025年工程灯具项目策划方案报告
- 2025年中国通信电缆行业市场调查研究及投资战略研究报告
- 2025年空调项目评估报告
- 2025年花草茶项目可行性研究报告
- 反洗钱述职报告
- 《中国缺血性卒中和短暂性脑缺血发作二级预防指南2022》解读
- 广东省大湾区2023-2024学年高一上学期期末生物试题【含答案解析】
- 飞机电气系统电子绪论课件
- 泌尿护士述职报告
- 明细账(三栏式)模板
- 正大天虹方矩管镀锌方矩管材质书
- 2024年山东鲁商集团有限公司招聘笔试参考题库含答案解析
- 妊娠剧吐伴酮症护理查房课件
- 200#溶剂油安全技术说明书
- 单位洗车房管理制度
评论
0/150
提交评论