版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、习题二 IA-32结构微处理器主要内容:主要介绍80868088CPU内部结构。了解80X86CPU的特点。(1.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,CF、PF、AF、ZF、SF、OF各为何值?【答】0100 1100+0110 0101=10110001 CF=0,PF=1,AF=1,ZF=0,SF=1,OF=12.7 存储器的逻辑地址由哪几部分组成?存储器的物理地址是怎样形成的?一个具有20位地址线的CPU,其最大物理地址为多少?【答】存储器的逻辑地址由段地址与段内偏移地址组成。存储器的物理地址:将16位段地址左移4位后加上16位段内偏移地址,形成20位物理地址。一个具有20位地址线的CPU,其最大物理地址为=1MB。2.8 现有6个字节的数据分别为11H,22H,33H,44H,55H,66H,已知它们在存储器中的
5、物理地址为400A5H400AAH若当前(DS)= 4002H,请说明它们的偏移地址值。如果要从存储器中读出这些数据,需要访问几次存储器,各读出哪些数据?【答】由于:物理地址=400A5H=段地址*16+偏移地址=40020H+偏移地址偏移地址=400A5+40020=85H 从奇地址400A5H中读出:11H;从偶地址400A6H读出一个字:22H,33H;从偶地址400A8H读出一个字:44H,55H;从偶地址400AAH中读出:66H。共读4次。2.9 已知当前数据段中存有如下图所示的数据,现要求将最后两个字节改成ODH,OAH,请说明需给出的段基值和偏移地址值,并说明其写入过程。148
6、00 150A1150A2150A3150A4150A5数据段首地址 【答】数据段段地址=150AH,偏移地址=0004H。CPU的总线接口部件根据数据段寄存器的内容150AH,左移4位,在加上偏移地址0004H,形成20位物理地址150A4H,由总线接口送出,选中物理存储单元150A4H、150A5H,数据0DH通过数据总线送入150A4H,数据0AH通过数据总线送入150A4H。 2.10 在 8088/8086中,逻辑地址FFFF0001, 00A237F和B800173F的物理地址分别是多少?2.11 在 8088/8086中,从物理地址388H开始顺序存放下列三个双字节的数据,651
7、AH, D761H和007BH,请问物理地址388H, 389H, 38AH, 38BH, 38CH和38DH 6个单元中分别是什么数据?【答】物理地址388H38DH单元中的数据如下表:地址388H389H38AH38BH38CH38DH数据1AH65H61HD7H7BH00H2.12 8086CPU的形成三大总线时,为什么要对部分地址线进行锁存?用什么信号控制锁存?【答】 为了确保CPU对存储器和I/O端口的正常读/写操作,要求地址和数据同时出现在地址总线和数据总线上。而在8086CPU中AD0AD15总线是地址/数据复用的,因此需在总线周期的前一部分传送出地址信息,并存于锁存器中,而用后
8、一部分周期传送数据。8086CPU中是通过CPU送出的ALE高电平信号来控制锁存的。 2.13 段寄存器CS=1200H,指令指针寄存器IP=4000H,此时,指令的物理地址为多少?指向这一物理地址的CS值和IP值是唯一的吗?【答】此时,指令的物理地址为16000H;这一物理地址的CS值和IP值不是唯一的,例如:CS=1000H,IP=6000H。 2.14 80386最重要的技术特点是什么?【答】(1) 速度大大提高:时钟达12MHZ/16MHZ, (2)寻址空间大大扩展:4GB物理空间,64TB (64GGB)虚拟空间, (3) 除了保持80286的实地址方式和保护方式外,增加了虚拟808
9、6方式。 (4) 80386 设置了转换检测缓冲器,大大加快了存储器访问速度。2.15 80386的内部有哪些部件?【答】80386功能部件包括总线接口部件BIU、指令预取部件IPU、指令译码部件IDU、指令执行部件EU、存储器管理部件MMU:即分页部件PU与分段部件SU。 2.16 80386 CPU有几种工作方式?【答】80386的实地址方式、80386的虚拟保护方式与虚拟8086方式。2.17 简述 80386 CPU的实地址方式特点。【答】80386上电或复位时,处于实地址方式,主要为80386进行初始化工作。特点:(1)实地址方式采用类似8086体系结构,寻址机构、存储器管理与中断处
10、理机构与8086一样。(2)操作数默认长度为16位,但允许访问80386的32位寄存器组,在使用时指令中要加上前缀以表示越权存取。(3)存储器寻址空间最大1M字节。(4)实地址方式下,存储器中保留两个固定区域,一个为初始化程序区:FFFF0FFFFFH,另一个为中断向量区00000003FFH。(5)80386具有4个特权级,实地址方式下,程序在最高级(0级)上执行。2.18 简述80386的虚拟保护方式特点。【答】80386的存储器的虚拟保护方式:80386上电或复位后,先进入实地址方式完成初始化,然后转到保护方式。在保护方式,虚存空间可达 4GB16K =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把80386和浮点运算协处理器80387及8KB的超
14、高速缓存器集中到一个芯片中,且支持二级Cache。80486能在一个时钟周期执行一条指令。2.24 80486和80386相比,有什么技术特点?【答】(1) 80486是首次采用RISC技术的;(2)采用片内高速缓存和片内浮点运算协处理器;(3) 80486采用一种突发式总线方式实现CPU和内存的高速数据交换;(4)80386可以模拟多个8086来实现多任务功能。2.25 Pentium有哪些技术特点?你认为在Pentium基础上主要应从哪几个方面可再作改进?【答】 采用超标量双流水线结构,每个流水线包含5个步级。 内部采用2个彼此独立的8KB数据高速缓存,这两个高速缓存可以同时被访问。 Pe
15、ntium内部数据总线为32位,但是cpu和内存进行数据交换的外部数据总线为64位,使一个总线周期的数据传输量提高一倍。 采用36位地址总线,扩展了寻址空间。 对mov、push、dec、inc等常用指令不用微程序而用硬件实现;采用分支预测技术提高流水线效能。 采用分支预测技术提高流水线效能。 浮点运算执行过程分为8个流水步级。pentium也存在一些缺点,如功耗大,达15w,浮点运算功能仍低于一些RISC处理器。2.26 选择题(1)80386共有( )个引脚信号,采用( )封装。 A128,PGA B132,LCC C132,PGA D128,LCC【答】C (2) 80386内部可以分为
16、( )个部件。 A8 B6 C4 D2【答】B(3) 80386有( )条地址信号线和( )条数据信号线 A32,32 B32,24 C24,32 D20,32【答】A(4) 外部CLK2的频率是80386内部时钟信号频率的()倍. A5 B4 C3 D2【答】D(5) 80386的 HLDA信号是对( )的应答信号 AHOLD BBUSRQ CINTR DDMARQ【答】A(6)80386的流水线方式请求信号是()。 AND # BNC CNB DNA 【答】D(7)80386的执行部件可分为( )子部件。 A控制部件 B数据部件 C保护测试部件 D. A和B E. B和C F. A .B和
17、C【答】F (8)80386在保护模式下工作时,可以有( )个特权级 A5 B4 C3 D2【答】B习题三 8086指令系统主要内容: 8086指令系统。主要介绍8086的基本数据类型、寻址方式和指令系统,重点掌握8086指令系统的寻址方式、堆栈操作指令、算术运算指令及其对标志位的影响,串操作指令,控制传送指令。3.1下面这些指令哪些是正确的?哪些是错误的?如是错误的,请说明原因。XCHG CS,AX () MOV BX,1000 () PUSH CS () POP CS () IN BX,DX ()3.2 单选题:(1)执行下面指令序列后,结果是( )。MOV AL,82HCBWA、AX=0
18、FF82HB、AX=8082HC、AX=0082HD、AX=0F82H【答】A(2)与MOV BX,OFFSET VAR指令完全等效的指令是( )。A、MOV BX,VARB、LDS BX,VARC、LESBX,VARD、LEA BX,VAR【答】D(3)编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有( )。A、CMPB、SUBC、ANDD、MOV【答】D(4)下面指令执行后,改变AL寄存器内容的指令是( )。A、TEST AL,02HB、OR AL,ALC、CMP AL,BD、AND AL,BL【答】D(5)设DH=10H,执行NEG DH指令后,正确的结果是(
19、)。A、DH=10H CF=1B、DH=0F0H CF=0C、DH=10H CF=0D、DH=0F0H CF=1【答】D(6)设DS=8225H,DI=3942H,指令NEG BYTE PTRDI操作数的物理地址是( )。A、85B92HB、86192HC、BB690HD、12169H【答】A(7)检查BUF的内容是否为正偶数,如是正偶数,则0TAL。下面程序段正确的是( )。A、MOVAL,BUFJSK1SHR AL,1JNC K1MOVAL,0K1:B、MOVAL,BUFANDAL,11JNZK2MOVAL,0K2:C、MOVAL,BUFTESTAL,81HJNZK3MOVAL,0K3:D
20、、MOVAL,BUFJNPK4TESTAL,80HJNZK4MOVAL,0K4:【答】C(8)下列指令中,执行速度最快的是( )。A、MOV AX,100 B、MOV AX,BX C、MOV AX,BX D、MOV AX,BX+BP【答】C3.3已知(DS)= 091DH,(SS)= IE4AH,(AX)= 1234H,(BX)= 0024H,(CX)= 5678H, (BP)= 0024H,(SI)= 0012H,(DI)= 0032H,09226 = 00F6H,09228=1E40H, lE4F6=091DH,试求单独执行下列指令后的结果?(l)MOVCL ,20H BXSI;【答】由于
21、源操作数有效地址EA=20H+0024H+0012H=0056H, 其物理地址PA=DS*16+EA=091DH*16+56H=09226H, 因此(CL)= F6H(2)MOVBPDI,CX; 【答】由于目的操作数有效地址EA= 0024H0032H=0056H, 目的操作数物理地址PA= SS*16+EA=1E4A0H+0056H=1E4F6H, 因此1E4F6=5678H(3)LEABX ,20HBXSIMOVAX ,2BX【答】第一条指令:源操作数物理地址PA091D0H+(20+0024H+0012H)=09226H,因此(BX)=0056H 第二条指令:源操作数物理地址PA091D
22、0H+(2+0056)=09928H, 因此(AX)=1E40H(4)LDSSI ,BXDIMOVSI,BX 【答】第一条指令: 源操作数物理地址PA=091D0H+(0024H+0032H)=09226H因此(SI)= 00F6H, (DS)=1E40H第一条指令:目的操作数物理地址PA1E400H+00F6H=1E4F6H因此1E4F6H单元的内容为0024H, 即1E4F6H=0024H(5)XCHGCX,32HBX XCHG20BXSI ,AX 【答】同理可得:(CX)= 00F6H(AX)= 00F6H, 09226H= 1234H3.48086 CPU执行如下指令后MOV AL,0
23、1100100BSUB AL,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 2000:0094H后,试求出 IP、CS、SP、SP、SP1SP2 和SP3的内容?【答】(IP)=0094H ,( CS)=2000H ,(SP)=F178H SP=8FH , SP+1=3DH , SP+2=50H, SP3=40H, SP+3=40H3.6设(DS)= 2000H,(BX)= 12
24、56H,(SI)= 528FH,TABLE的偏移量= 20A1H,232F7H=3280H, 264E5H = 2450H,执行下述指令 (1)JMP BX ;IP= 1256H (2)JMP TABLEBX ;IP= 3280H (3)JMP BXSI ;IP= 2450H3.7分别用一条语句实现下述指明的功能 (1)栈顶内容弹出送字变量DI。( POP DI )(2)双字变量AYD存放的地址指针送ES和SI。( LES SI ,AYD )(3)不允许中断即关中断。( CLI )(4)子程序返回调用程序。( RET )(5)AX的内容加1,要求不影响CF。( INC AX )(6)BX的内容
25、加1,要求影响所有标志位。( ADDBX, 1 )(7)若操作结果为零转向标号GOON。( JZGOON )3.8 80868088用什么途径来更新CS和IP的值?【答】执行CALL、JMP、INT指令,可以改变CS和IP中的值,即改变程序走向。 3.9 字节扩展指令和字扩展指令用在什么场合?举例说明。【答】需要对带符号数字节扩展为字时,要预先执行CBW指令。需要对带符号数字扩展为双字时,要预先执行CWD。【答】例:求-503/267=?,将商存1000H单元.MOV AX,-503MOV BX,267CWDIDIVMOV 1000H,AXHLT3.10 设DS=2100H,SS=5200H,
26、BX=1400H,BP=6200H,说明下面两条指令所进行的具体操作:MOV WORD PTR BP, 2000MOV WORD PTR BX, 20003.11以下是格雷码的编码表00000 ,10001 ,20011, 30010, 4011050111 ,60101, 70100, 81100, 91101请用换码指令和其他指令设计一个程序段,实现格雷码往ASCII的转换。【答】格雷码ASCII码000030H000131H001033H001132H010037H010136H011034H011135H10000100101010010110110038H110139HTABLESE
27、GMENTTAB_DA DB 30H,31H,33H,32H,37H,36H,34H,35H,0,0DB 0,0,38H,39HGRA DB 05H ASCII_DA DB ? TABLEENDSCODESEGMENTASSUME CS:CODE,DS:TABLESTART: MOV AX,TABLE MOV DS,AX MOV BX,OFFSET TAB_DA MOV AL,GRAXLATMOV ASCII_DA,ALCODEENDSENDSTART3.12 8086状态标志寄存器中,作为控制用的标志位有( 3 )个,其中,不可用指令操作的是(DF、 IF、 TF)3.13 设当前的SP=1
28、000H,执行PUSHF指令后,SP=(0FFE H),若改为执行INT 20H指令后,则SP=( 0FFA H)。【答】执行PUSHF指令后,SP=(0FFE H)。执行INT 20H指令后,则SP=( 0FFA H)。3.14 设当前SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执行PUSH BX 指令后,栈顶地址和栈顶2个字节的内容分别是什么?【答】当前栈顶指针(SP)=2FF00H,物理地址20100H+FE00H=2FF00H 当执行PUSH BX 指令后,栈顶指针(SP)=FE00-2=FDFEH,栈顶物理地址2FDFEH,栈顶2个字节的内容分别
29、57H,34H。3.15 HLT指令用在什么场合?如CPU 在执行HLT 指令时遇到硬件中断并返回后,以下应执行哪条指令?【答】HLT用在使CPU处于暂停状态而等待硬件中断的场合。 在执行HLT指令遇到硬件中断并返回后将执行HLT后面的一条指令。3.16 为什么用増量指令或减量指令设计程序时,在这类指令后面不用进位标志作为判断依据?【答】増量指令或减量指令不影响进位标志CF。3.17 用普通运算指令执行BCD码运算时,为什么要进行十进制调整?具体讲,在进行BCD码的加、减、乘、除运算时,程序段的什么位置必须加上十进制调整指令?【答】在BCD码中,采用4位二进制数对一个十进制数的编码,只允许09
30、这10个数字出现,但CPU运算结果一般会超过此范围,因此要进行十进制调整。进行加、减法或乘法运算时,调整指令必须紧跟在算术指令后面,在进行除法运算时,调整指令放在除法指令之前。3.18 中断指令执行时,堆栈的内容有什么变化?中断处理子程序的人口地址是怎样得到的?【答】中断指令执行时,堆栈内容变化如下:标志寄存器被推入堆栈,且SP减2,然后CPU将主程序的下一条指令地址即断点地址推入堆栈,即段值CS推入堆栈且SP减2,偏移量推入堆栈,且SP减2。中断处理子程序的入口地址即中断向量,对应的中断类型号的4倍即为中断向量地址,在该地址处的4个字节内容,高地址单元两个字节为中断入口地址的段地址,低地址单
31、元两个字节为中断入口地址的偏移地址。3.19 中断返回指令IRET和普通子程序返回指令RET 在执行时,具体操作内容什么不同?【答】IRET从堆栈中依次弹出断点处指令指针IP、代码段CS内容与标志寄存器的值,而RET从堆栈中依次弹出断点处指令指针IP值、代码段CS内容,不需要弹出标志寄存器的值。3.20 将存放在0A00H单元和0A02H单元的两个无符号数相乘,结果存放在地址为0A04H开始的单元中。 【答】参考程序:MOVAL,0A00HMOVBL,0A02HMULBLMOV0A04,AX3.21 编程序将AX中数,最高位保持不变,其余全部左移4位。【答】参考程序:MOVBX, AXANDB
32、X , 8000HMOVCL, 4SHLAX, CLANDAX,7FFFHORAX, BX3.22 将0400H单元中的数,低4位置零,高4位保持不变。【答】参考程序:MOVAL, 0400HANDAL, 0F0HMOV0400H, AL3.23 将BX中的数,对高位字节求反,低位字节保持不变。【答】参考程序:NOTBH 3.24 检测Bx中第13位(D13),为0时,把AL置0,为1时,把AL置1。【答】参考程序:TESTBX,0010 0000 0000 0000BJZZEROMOVAL,01HHLTZERO:MOVAL,0HLT3.25 利用字串操作指令,将1000H10FFH单元全部清
33、零。【答】参考程序:CLDMOVDI,1000HMOVCX,100HMOVAL,0REPSTOSB3.26 从1000H开始,存放有200个字节,要查出字符#(ASCII码为23H), 把存放第一个#的单元地址送入BX中。【答】参考程序:CLDMOV DI,1000HMOV CX,200MOV DX,CXMOV AL,23HREPNZ SCASBJZFINDJMP NOFOUNDFOUND:DEC DIMOV BX,DINOFOUND:HLT3.27 编程计算(X+Y)*10)+Z)/X,X、Y、Z都是16位无符号数,结果存在RESULT开始的单元。【答】参考程序:MOVAX,XADD AX,
34、YMOV BX,0AHMUL BXADD AX,ZADC DX,0HMOV BX,XDIV BXMOV RESULT,AXMOVRESULT+2,DXHLT3.28 用简单指令编程求-3/2=?,将商存DL,余数存DH单元。用TD调试后,写出DL,DH的内容。【答】参考程序:MOVAL,-3CBWMOVBL,2IDIV BLMOV DL,AL MOVDH,AHHLT习题四 汇编语言程序设计主要内容:汇编语言程序设计。主要介绍汇编语言程序的设计方法与编程原理,重点掌握算术运算程序、字符串处理程序、码制转换程序、子程序设计程序、常用DOS和BIOS功能调用程序、汇编语言常用伪指令。4.1 分析执行
35、下列指令序列后的结果: 1)MOVAX,1234H MOVBX,00FFH ANDAX,BX【答】(AX)=0034H2)MOVAL,01010101B ANDAL,00011111B;(AL)=00010101B ORAL,11000000B;(AL)=11010101B XORAL,00001111B;(AL)=11011010B NOTAL【答】(AL)=00100101B3)MOVDL,05H MOVAX,0A00H MOVDS,AX MOVSI,0H MOVCX,0FH AGAIN:INCSI CMPSI,DL LOOPNEAGAIN HLT 本程序实现了什么功能?【答】在以0A00
36、1H开始的15个单元中查找05H。4)MOVAX,DSEGADDR MOVDS, AX MOVES,AX MOVSI, OFFSET B1ADDR MOVDI,OFFSET B2ADDR MOVCX,N CLD REPMOVSB HLT 本程序实现了什么功能?【答】 将B1ADDR中N个字节数据传送到B2ADDR开始的15个存储单元 。 5)MOVAX, 0H MOVDS,AX MOVES, AX MOVAL,05H MOVDI,0A000H MOVCX,0FH CLD AGAIN:SCASBLOOPNEAGAIN HLT本程序实现了什么功能?【答】从地址0A000H开始的15个单元中查找字节
37、型数据05H,用条件循环LOOPNZ,控制数据05H的查找。4.2 阅读程序:1).CLD LEADI,0100H MOVCX, 0080H XORAX, AX REPSTOSW 本程序实现了什么功能?【答】将DS中起始地址为0100H的128个字节单元清零。2).MOVAL, 08H SALAL,01H;(AL)=00010000H MOVBL, AL MOVCL ,02H SALAL,CL;(AL)=01000000H ADDAL,BL;(AL)=01010000H 本程序实现了什么功能? 【答】 将AL中的内容乘以10。4.3 试分析下列程序完成什么功能? MOVDX,3F08HMOVA
38、H,0A2HMOVCL,4 SHLDX,CL;(DX)=F080H MOVBL,AH SHLBL,CL;(BL)=20H SHRBL,CL;(BL)=02H ORDL,BL;(DL)=82H 【答】将DX中的低4位数据8H分离出来,将AH中的低4位数据2H分离出来,合并为82H存放在DL。4.4 已知程序段如下: MOVAX,1234H MOVCL,4 ROLAX,CL DECAX MOVCX,4MULCX 试问:(1)每条指令执行后,AX寄存器的内容是什么?(2)每条指令执行后,CF,SF及ZF的值分别是什么?(3)程序运行结束时,AX及DX寄存器的值为多少? 【答】MOVAX,1234H;
39、 (AX)=1234H, CF=SF=ZF=0 MOVCL,4 ROLAX,CL; (AX)=2341H ,CF=1,SF=ZF=0 DECAX; (AX)=2340H,CF=1,SF=ZF=0 MOVCX,4;MULCX;(AX)= 8000H ,CF=ZF=0,SF=1,DX=04.5 试分析下列程序段: ADDAX,BX JNCL2 SUBAX,BX JNCL3 JMPSHORTL5 如果AX、BX的内容给定如下: AXBX (1)14C6H80DCH (程序转向 L2)(2)B568H54B7H (程序转向 SHORTL5 )问该程序在上述情况下执行后,程序转向何处? 【答】(1) 程
40、序转向 L2。(2) 程序转向 SHORTL5。4.6 以下为某个数据段,试问各个变量分别占多少字节,该数据段共占多少字节? DATASEGMENT VAR1DW9 ;2字节VAR2DD10 DUP(?),2 ;44字节VAR3DB2 DUP(?,10 DUP(?) ;22字节VAR4DB HOW ARE YOU ;11字节DATA ENDS【答】该数据段共占79字节。4.7 下列语句在存储器中分别为变量分配多少字节空间?并画出存储空间的分配图。 VAR1DB10,2 ;2字节VAR2DW5DUP(?),0 ;12字节VAR3DBHOW ARE YOU?,$ ;13字节VAR4DD-1,1,0
41、 ;2字节Var1Var2Var3Var410?FFH2?U00H?O00H?Y00H?01H?E00H?R00H?A00H?00H?W00H0O00H0H00H$4.8 编写一段程序,比较两个5字节的字符串OLDS和NEWS,若相同,在RESULT置0,否则置0FFH。【答】参考程序:OLDSDB 1,2,3,4,5NEWSDB 1,2,3,4,5RESULTDB ?MOVSI,OFFSET OLDSMOVDI,OFFSET NEWSMOVCX,10CLD REPCMPSB JNZNOEQU ;串不相等转MOVAL,0JMPOUTPT NOEQU:MOVAL,0FFH OUTPT:MOV R
42、ESULT,ALSTOP:JMPSTOP4.9 编程求和Y=A1 + A2 + . + A100 。其中Ai为字节变量。【答】参考程序:DATASEGMENTTABLEDW 12,3,45,.YALDW ?YAHDW ?DATAENDS .MIANPROCFARPUSHDSMOVAX, 0PUSHAXMOVAX, DATAMOVDS, AXMOVDX,0XORAX, AX;清AXMOVBX, OFFSET TABLEMOVCX, 4CLCLP: ADDAX, BX;求和JNCDONINCDXCLC DON: INCBXINCBX;指向下一个数LOOPLP;未加完,继续MOVYAL,AX;存和M
43、OVYAH,DXMAINENDPCODEENDSEND START4.10 内存中以FIRST和SECOND开始的单元中分别存放着两个16位组合的十进制(BCD码)数,低位在前。编程序求这两个数的组合的十进制和,并存到以THIRD开始的单元。【答】参考程序:1325+9839=?DATA SEGMENTFIRSTDB 05H,02H,03H,01H ;SECONDDB 09H,03H, 08H,09H;THIRDDB 20 DUP (?)DATAENDSSTACKSEGMENTST1DB 100 DUP (SA)TOP1 EQU ST1 LENGTH ST1STACK ENDSCODESEGM
44、ENTASUMMECS:CODE,DS:DATA,SS:STACKMAINPROCFARSTART:MOVAX, DAT;初始化数据段MOVDS, AXMOVAX, STACK;初始化堆栈段MOVSS, AXMOVAX, TOP1MOVSP, AXMOVCX, 4;计算4次MOVBX, OFFSETDAT1;取数据地址MOVSI , OFFSETDAT2;取数据地址MOVDI , OFFSET SUM;取结果地址MOVAH, 00H;将暂存标志的AH清0DON1:MOVAL, BX;取第一个数 SAHF;将AH中的标志送标志寄存器ADCAL, DI;与第二个数带进位加AAA;十进制校正LAHF
45、;将标志寄存器内容送AHORAL, 30H;计算值拼成ASCII码MOVDI, AL;存结果的ASCII码INCBX;指向第一个数的下一位INCSI;指向第二个数的下一位INCDI;指向结果单元的下一位LOOPDON1;未计算完,继续ANDAH, 01H;将最高位的进位标志送AHORAH, 30H;最高位的进位位拼成ASCII码MOVDI, AH;存结果的最高位MOVAH, 02H;调用DOS的02H功能显示MOVCX, 05H;显示数据的位数DON2: MOVDL,DI;显示数据送DLINT21H;显示DECDI;显示数据所在存储单元加一LOOPDON2;未显示完,继续MOVAH, 4CH;
46、返回DOSINT21H RET MAINENDP CODEENDS ENDSTART 4.11 试编程序,统计由40000H开始的16K个单元中所存放的字符“A“的个数,并将结果存放在DX中。【答】参考程序DATA SEGMENT DATA1DB DFASFAAAFDFAAFFFACOUNTEQU $-DATA1DATAENDSSTACKSEGMENTSTA DB 100 DUP (?)TOP EQU LENGTH STA STACK ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKBEGIN:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVAX,TOPMOVSP,AXMOVCX,COUNTMOVDX,0LEASI,DATA1MOVBL,A NEXT :CMPSI,BLJNZOTHERINCDXOTHER:INCSILOOPNEXTCODEENDSEND BEGIN4.12 统计数据块中正数与负数的个数,并将正数与负数分别送到两个缓冲区。【答】参考程序:BLOCKDB -1,-3,5,6,-2,0,20,10 PLUS_DDB 8 DUP(?);正数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第13课《最后一次讲演》教学设计-2023-2024学年统编版语文八年级下册
- 2024年公共场所消防安全巡查分包合同
- 中班语言活动教案《彩虹》
- 【同步备课】第1课时 线段、直线、射线和角(教案)四年级数学上册(人教版)
- 2023-2024学年一年级上学期数学1.2玩具(学案)
- 2024年个人借款及担保条款精简版
- 钻井作业健康风险应急预案
- 中班语言教案及教学反思《最奇妙的蛋》
- 中班语言教案:花灯谣
- 2024年创新版:网络安全保障与维护合同
- 面试业务员问题及答案
- 三年级家长会语文教师发言课件
- 太阳能电池丝网印刷工艺
- 谢孟媛中级文法讲义
- 第三讲神话学
- 20 蜘蛛开店 (一等奖创新教案)
- 2022届高三语文一轮复习积累:现代汉语语法基础知识
- 祖暅原理与柱体、锥体、球的体积 课件
- 医学微生物学智慧树知到答案章节测试2023年山东第一医科大学
- 五年级道德与法治星星之火可以燎原教案统编版
- GB/T 7715-2014工业用乙烯
评论
0/150
提交评论