微机原理习题解答_第1页
微机原理习题解答_第2页
微机原理习题解答_第3页
微机原理习题解答_第4页
微机原理习题解答_第5页
免费预览已结束,剩余42页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第 1 章 习题和解答15. 将下列十进制数分别转化为二进制数、十六进制数和BCD码。(1) 15.32=(0000 1111.0101 0001)2=(0F.51) 16=(0001 0101.0011 0010) BCD(2) 325.16=(00010100 0101.0010 1000) 2=(145.28) 16=(001 1 0010 0101.00010110) BCD(3) 68.31=(0100 0100.0100 1111)2=(44.4F) 16=(01 1 0 1000.0011 0001) BCD(4) 214.126=(11010110.0010 0000) 2=(

2、0D 6.20) 16=(0010 0001 0100.0001 00100110) BCD16. 将下列二进制数分别转化为十进制数和十六进制数。(1) 10110101= 181=0B5H(2) 11001011= 203=0CBH(3) 10101.1001= 21.5625=15.9 H(4) 101101.0101= 45.3125=2D.5H17. 将下列十六进制数分别转化为二进制数、十进制数。(1)FAH=1111 1010B=250(2)12B8H=0001 0010 1011 1000B=47925A8.62H=0101 1010 1000.0110 0010B=1448.38

3、28125(4)2DF.2H=0010 1101 1111.0010B=735.12518. 若 X= -107 , Y= +74 按 8 位二进制可写出:。X补=95H ,Y补=4AH , X +Y 补=0DFH,X-Y补=4BH19. X 34AH, Y= 8CH问:有三位和两位十六进制数X和Y,(1) 若X, Y是纯数(无符号数),贝心 X+Y= 3D6H X-Y= 2BEH(2) 若 X, Y是有符号数,贝9: X+Y= 2D6 H; X-Y=3BEH20. 已知X= 85, Y= 76(均为十进制数),求-85补,-76补。并利用补码的加、减 法运算规则计算X-Y补,-X+Y补,-X

4、-Y补。结果的各机器数及其真值请用十六 进制表示,并由运算过程中的标志位 OF判断结果是否溢出。答:X补=85补=55H,Y补=76补=4CH, -X补=-85补=0ABH,-Y补=-76 补=0B4HX-Y补=X补 +-Y补=55H+B4H=09H, OF=0-X+Y补=-X补+Y补二ABH+4CH=0F7H, OF=0-X-Y补=-X补 +-Y补=ABH+B4H=5FH, OF=121. (1) 设X补=10101010B,则1/2X补=1/2X补=11010101B(2) 设X补=11010100B,贝y -1/4X 补二1/4X 补补二11110101补=00001011B第 2 章

5、习题和解答1. 8086 是多少位的微处理器?为什么?答:8086是高性能的第三代微处理器,是 Intel 系列的 1 6位微处理器。2. EU 与 BIU 各自的功能是什么?如何协同工作?答:EU其主要功能是执行命令。BIU其主要功能是负责完成 CPU与存储器或I/O设 备之间的数据传送。总线接口部件BIU和执行部件EU并不是同步工作的,两者的动作管理遵循如下原贝:每当 8086 的指令队列中有 2 个空字节, BIU 就会自动把指令取到指令队列中。 而 同时EU从指令队列取出一条指令,并用几个时钟周期去分析、执行指令。当指令队列已满,而且 EU对BIU又无总线访问请求时,BIU便进入空闲状

6、态。3. 8086/8088 微处理器内部有那些寄存器,它们的主要作用是什么?答:8086CPL内有14个16位的寄存器。其中有 4个16位通用寄存器 AX BX CXDX, 2 个 16 位指针寄存器 SP、BP, 2 个 16 位变址寄存器 SI、DI, 4 个 16 位段寄存 器 CS、DS、SS、ES, 1 个 16 位指令指针寄存器 IP 及 1 个 16 位标志寄存器 FLAGS。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。4. 8086 对存储器的管理为什么采用分段的办法?答:8086 CPU有 20位地址总线,它可寻址的存储空间为 1MB而8086指令给

7、出的 地址编码只有16位,指令指针和变址寄存器也都是 16位的,所以CPU不能直接寻 址1 MB空间,为此采用分段管理。5. 在 8086 中,逻辑地址、偏移地址、物理地址分别指的是什么?具体说明。答:逻辑地址 =物理地址:偏移地址;偏移地址 =相对于段起始地址的距离;物理地址二段地址*10H+偏移地址6. 给定一个存放数据的内存单元的偏移地址是20C0H (DS)=0C00EH求出该内存单元的物理地址。答: 物理地址二段地址*10H+偏移地址=0C00E0H+20C0H=0C21A0H7. 8086/8088 为什么采用地址 / 数据引线复用技术?答:8086/8088 CPU具有40条引脚

8、,采用分时复用地址数据总线, 从而使8086/8088CPU用40条引脚实现20位地址、16位数据、控制信号及状态信号的传输。8. 8086 与 8088 的主要区别是什么?答:8086有 16位数据线, 8088有 8位数据线。9. 怎样确定 8086 的最大或最小工作模式?答:8088/8086CPU 的引脚固定接+5V时,CPU处于最小模式下,引脚固定接地时,CPU处于最大模式下。IP、DS、10. 8086 被复位以后,有关寄存器的状态是什么?微处理器从何处开始执行程序?答:复位信号输入之后,CPU结束当前操作,并对处理器的标志寄存器、SS ES寄存器及指令队列进行清零操作,而将CS设

9、置为OFFFFH11. 8086基本总线周期是如何组成的?各状态中完成什么基本操作?答:一个基本的总线周期由 4个T状态组成,我们分别称为 Ti-T44个状态,在每 个T状态下,CPU完成不同的动作。Ti状态:根据IO/M确定对存贮器或I/O操作,20位地址AA9信号有效,地址 锁存信号ALE有效,给出DT/R信号控制8286数据传输方向。T2状态:高四位地址/状态线送出状态信息 SS,低16位地址/数据线浮空,为 下面传送数据准备;WR或RD有效,表示要对存贮器/I/O 端口进行读或写;有效,使得总线收发器(驱动器)可以传输数T3状态:从存贮器或者I/O 端口读出的数据送上数据总线(通过)0

10、READY线的前沿(即Tw状态:若存贮器或外设速度较慢,不能及时送上数据的话,则通过通知 CPU , CPU 在的前沿处检测READY等到READ度高后,则0=0 ,则在结 束 后 自 动 插入 1 个 或 几个进入自动脱离T4状 态 : 在与( 或 ) 的交界处 (下降沿 ) ,采集数据,使各控制及状态线进入无效。13. 8086 中断分哪两类? 8086 可处理多少种中断?答:中断共分为两类:硬件中断和软件中断, 8086可处理 256 种中断。14. 8086 可屏蔽中断请求输入线是什么?“可屏蔽”的涵义是什么?答:硬件中断又可分为两类:可屏蔽中断和不可屏蔽中断。不可屏蔽中断:由NMI

11、引脚引入,它不受中断允许标志 IF 的影响,每个系统中仅允许有一个,都是用 来处理紧急情况的,如掉电处理。这种中断一旦发生,系统会立即响应;可屏蔽中 断:由INTR引脚引入,它受中断允许标志IF的影响,也就是说,只有当IF = 1时, 可屏蔽中断才能进入,反之则不允许进入。15. 中断向量表的功能是什么?已知中断类型码分别是84H和OFAH它们的中断向量应放在中断向量表的什么位置?答:中断向量表存放的是各中断程序的入口地址即1 6位偏移地址和 1 6位段地址,只要给出中断类型码,可以算出中断程序在中断向量表的什么位置:中断向量表地址 =中断类型码 *4中断向量表地址 1=84H*4=21OH中

12、断向量表地址 2=OFAH*4=3E8H第 3 章 习题和解答1. 简要分析 8O86 的指令格式由哪些部分组成,什么是操作码?什么是操作数?寻址和寻址方式的含义是什么?8086指令系统有哪些寻址方式?答:指令由操作码和操作数两部分组成,操作码表示计算机执行某种指令功能,操 作数表示操作中所需要的数据或者数据所在存储单元的地址。寻址方式是寻找操作数或操作数地址的方式寻址、 相对寄存器寻址、基址变址寻址和相对基址变址寻址方式2. 设 (DS)=2000H,(ES)= 2100H,(SS)= 1500H,(SI)= 00A0H,(BX)= 0100H,(BP)=0010H,数据变量VAL的偏移地址

13、为0050H,请指出下列指令的源操作数字段是什么寻址方式?它的物理地址是多少?(1) MOV AX , 21H立即寻址物理地址无(2) MOV AX , BX寄存器寻址物理地址无(3) MOV AX , 1000H直接寻址物理地址=2000H*10H+1000H=21000H(4) MOV AX , VAL直接寻址物理地址=2000H*10H+0050H=20050H(5) MOV AX , BX寄存器间接寻址物理地址=2000H*10H+0100H=20100H(6) MOV AX , ES : BX寄存器间接寻址物理地址=2100H*10H+0100H=21100H(7) MOV AX ,

14、 BP寄存器间接寻址物理地址=1500H*10H+0010H=15010H(8) MOV AX , SI寄存器间接寻址物理地址=2000H*10H+00A0H=200A0H(9) MOV AX,BX+10H=2000H*10H+0100H+10H=20110H(10) MOV AX , VALBX相对寄存器寻址 物理地址相对寄存器寻址 物理地址(11) MOV AX, BXSI基址变址寻址 物理地址=2000H*10H+0100H+A0H=201A0H(12) MOV AX,VALBXSI相对基址变址寻址 物理地址=2000H*10H+0100H+50H=20150H=2000H*10H+01

15、00H+A0H+50H=201F0H3. 给定寄存器及存储单元的内容为:(DS) = 2000H, (BX) = 0100H, (SI) = 0002H,(20100)=32H,(20101)=51H,(20102)=26H,(20103)=83H,(21200)=1AH,(21201)=B6H,(21202)=D1H,(21203)=29H。试说明下列各条指令执行完后,AX寄存器中保存的内容是什么。1200H立即寻址AX=1200Hr c II32HBX寄存器寻址AX=0100H51H1200H直接寻址26H(1) MOV AX(2) MOV AX(3) MOV AX物理地址=2000H*1

16、0H+1200H=21200H AX=0B61AH20100H20101HMOV AX,BX寄存器间接寻址物理地址 =2000H*10H+0100H=20100H AX=5132H(5) MOV AX , 1100HBX 相对寄存器寻址物理地址 =2000H*10H+0100H+1100H=21200H AX=0B61AH(6) MOV AX , BXSI 基址变址寻址物理地址 =2000H*10H+0100H+02H=20102H AX=8326H4. 试说明指令 MOV BX,10HBX与指令LEA BX,10HBX的区别答:MOV BX,10HBX BX=物理地址为(DS*10H+BX+

17、10H)2字节单元的内容LEA BX,10HBX BX= BX+10H( 地址 )5. 假 设 (DS)=3000H,(CS)=1000H,(IP)=1500H,(BX)=1000H, 位 移 量 大 DATA=50H (31000H)=1250H,(31050H)=2400H,(31052H)=6000H 。确定下列转移指令的转移地址(1) JMP 2500H IP =2500HCS=1000H CS 段 指 令 物 理 地 址=1000H*10H+2500H=12500H(2) JMP BXIP=BX=1000HCS=1000H CS 段 指 令 物 理 地 址=1000H*10H+100

18、0H=11000H(3) JMP WORD PTRBX DS 段物理地址 =3000H*10H+1000H=31000HIP=(31000H)=1250HCS=1000H: CS 段 指 令 物 理 地 址 =1000H*10H+1250H=11250H(4) JMP DWORD PTRBX+DATA DS段物理地址=3000H*10H+1000H+50H=31050HIP=(31050H)=2400HCS=(31052H)=6000H CS 段 指 令 物 理 地 址=6000H*10H+2400H=62400H6. 设堆栈指针 SP的初值为2500H, (AX)=1234H,(BX)=56

19、78H。执行指令PUSHXX后,(SP)二?,再执行指令 PUSH BX及 POP AX之后,(SP)=? (AX)=? (BX)=?PUSH AX SP=SP-2=2500H-2=24FEHPUSH BX SP=SP-2=24FEH-2=24FCHPOP AX SP=SP+2=24FCH+2=24FEH AX=5678H BX=5678H7. 分析下列指令的正误,对于错误的指令要说明原因并加以改正。(1) MOV AH, BX错 数据结构不同 MOV AX , BX或 MOV AH, BL(2) MOV BX , SI错 二存储单元间不允许直接传送数据MOV AX, SIMOV BX, AX

20、(3) MOVAX, SIDI错源区都为变址寄存器 MOV AX, BXDI 或MOVAXBXSI(4) MOVMYDATBXSI , ES:AX 错 段前缀应指向存 储单元 MOV ES:MYDATBXSI , AX(5) MOVBYTEPTRBX,1000错 数据结构不同 MOV BYTEPTRBX, 100 (6) MOV BX OFFSETMA YDATSI错 MAY DAT为符号地址 MOV BX , OFFSETMA YDATMOV CS, AX 错 不允许给 CS赋值 MOV DS , AX(8) MOV DS , BP 错 赋值方式不对MOV AX , BP MOV DS, A

21、X8. 设VAR1 VAR2为字变量,LAB为标号,分析下列指令的错误之处并加以改正。(1) ADD VAR1,VAR2错 VAR1、VAR2为字变量(代表2个存储单元地址)MOV AX, VAR2 ADD VAR1, AX(2) MOV AL , VAR2 错 数据结构不同 MOV AX, VAR2(3) SUB AL , VAR1 错 数据结构不同 SUB AX , VAR1(4) JMP LABSI错 LAB 为标号地址 JMP LAB(5) JNZ VAR1错 VAR1 为字变量不是标号地址 JNZ LAB9. 已知(AL)=6CH, (BL)=0A9H,执行指令 ADD AL,BL

22、后,AF、CF、OF PF、SF、和ZF的值各为多少?ADD AL,BL AL=6CH+ A9H=15H AF=1 CF=1 OF=0 PF=0 SF=0 ZF=010. 试判断下列程序执行后,(BX)=的内容。MOV CL,5MOV BX,01C9H BX=01C9HROL BX,1 BX=0392HRCR BX,CL BX=201CH11. 写出能够完成下列操作的 8086CPU!令。(1) 把 4629H 传送给 AX寄存器;MOV AX, 4629H(2) 从 AX寄存器中减去 3218H;SUB AX, 3218H(3) 把BUF的偏移地址送入BX中。LEA BX, BUF12. 根

23、据以下要求写出相应的汇编语言指令。(1) 把BX和DX寄存器的内容相加,结果存入DX寄存器中;ADD DX, BX(2) 用BX和SI的基址变址寻址方式,把存储器中的一个字节与 AL内容相加,并保 存在AL寄存器中;ADD AL, BXSI(3) 用寄存器BX和位移量21B5H的变址寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储器单元中; ADD WORD PTR BX+21B5H, CX(4) 用位移量2158H的直接寻址方式把存储器中的一个字与数3160H相加,并把结果送回该存储器中;ADD WORD PTR 2158H, 3160H(5)把数25H与(AL)相加,结果送回寄存

24、器 AL中。 ADD AL, 25H13. 按下列要求写出相应的指令或程序段。(1) 使BL寄存器中的高、低四位互换;MOV CL, 4 ROL BL, CL 屏蔽 AX寄存器中的 b10 和 b5 位; AND AX, 1111 1011 1101 1111B 分别测试AX寄存器中b13和b2位是否为1。TEST AX, 0000 0000 0000 0100B测试AX寄存器中b2位是否为1TEST AX, 0010 0000 0000 0000B测试AX寄存器中b13位是否为114. 执行以下两条指令后,标志寄存器FLAGS的六个状态为各为何值?MOV AX,95C8HADD AX,837

25、9H AX=1941H AF=1 CF=1 OF=1 PF=1 SF=0 ZF=015. 若(AL)=85H,(BL)=11H,在分别执行指令 MUL和IMUL后,其结果是多少?MUL BL AL*BL=85H*11H=133*17=2261?AX=08D5H( 无符号数相乘 )IMUL BL AL*BL=-7BH*11H=(-123)*17= -2091?AX=0F7D5H(有符号数相乘)第 4 章 习题和解答1. 请分别用DB DW DD伪指令写出在DATA幵始的连续8个单元中依次存放数据11H 22H 33H、44H、55H、66H 77H、88H 的数据定义语句。DATA DB 11H

26、,22H,33H,44H,55H,66H,77H,88HDATA DW 1122H,3344H, 5566H,7788HDATA DD 11223344H, 55667788H2. 若程序的数据段定义如下,写出各指令语句独立执行后的结果:DSEG SEGMENTDATA1DB 10H, 20H, 30H ;3 个字节(数据为 10H,20H,30H),地址 0000H-0002HDATA2DW 10 DUP(?) ;20个字节(数据全为未知数),地址0003H-0016HSTRING DB '123'3 个字节(数据为 31H,32H,33H),地址0017H-0019HDSE

27、G ENDS(1) MOV AL , DATA1AL=10H(2) MOV BX , OFFSET DATA2 BX=0003H(3) LEA SI , STRINGSI=0017HADD BX, SIBX=001AHMOV AL, SI+2AL=33H3. 试编写求两个无符号双字长数之和的程序。两数分别在MEM和MEM单元中,和放在SUM单元。78H0000H0001H96HDATAS SEGMENTMEM1 DD 82349678HMEM2 DD 9876A432HSUM DD ?DATAS ENDSCODES SEGMENTASSUME CS:CODES, DS:DATASSTART:

28、MOV AX, DATASMOV DS, AX ;LEA BX,MEM1LEA SI, MEM2 ;LEA DI, SUM ;取定义的DS段的段地址?DS取MEM偏移地址BX=0000H取MEM偏移地址SI=0004H取SUM偏移地址DI=0008HMOVAX, WORDTRBX; 将0000H地址的内容 9678H?AX=9678HADDAX, WORDPTR SI;AX+0004H地址的内容A432H?AX=3AAAH有进位 CF=1MOV WORD PTR DI, AX将AX的内容?偏移地址 DI=0008H字单元中INC BX;BX=BX+1=0001HINC BX;BX=BX+1=0

29、002HINC SI;SI=SI+1=0005HINC SI;SI=SI+1=0006HINC DI;DI=DI+1=0009HINC DI;DI=DI+1=000AHMOVAX,WORDTRBX; 将0002H地址的内容 8234H?AX=8234HADCAX,WORD PTR SI;AX+0006H 地 址 的 内 容9876H+CF?AX=1AABH有进位 CF=1MOV WORD PTR DI,AX ;将 AX 的内容?偏移地址 DI=000AH字单元中MOV AH, 4CHINT 21HCODES ENDSEND START4. 试编写程序,测试 AL寄存器的第4位是否为0?TEST

30、 AL, 00001000BJZ LP5. 编写程序,将BUFFER的一个8位二进制数转换为 ASCII码,并按位数高低顺 序存放在ANSWE开始的内存单元中。DATA SEGMENTBUFFER DB 3CHANSWER DB ?, ?DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX, DATAMOV DS, AXMOV AL, BUFFER ;AL=3CHMOV CL, 4SHR AL, CL将AL内容右移4位AL=03H先取高四位3CMP AL,9JG LP1;若AL内容大于9,说明AL内容在A-F之间ADDAL,30H;

31、否则AL内容小于9,将AL内容转换为ASCII码即AL+30H->ALJMP LP2LP1:ADDAL,37H ;将 AL 内容转换为 ASCII 码即 AL+37H->A(如 0CH+37H=43H大写C的ASCII码)LP2: MOV ANSWER, AL ;将结果存入 ANSWE第一个单元MOV AL, BUFFER ;AL=3CHAND AL, 0FH ;取AL内容低四位 CMOV AH, 4CHINT 21HCODE ENDSEND START6. 假设数据项定义如下:DATA1 DB HELLO! GOOD MORNIN!G'DATA2 DB 20 DUP(?)

32、用串操作指令编写程序段,使其分别完成以下功能:i. 从左到右将DATA仲的字符串传送到 DATA2中;LEA SI, DATA1;SI=0000HLEA DI, DATA2;DI=0014HMOV CX, 20 ;20个字符REP MOVSB ;将DATA仲的字符串传送到 DATA2中传送完后,比较DATA1和 DATA2中的内容是否相同;LEA SI, DATA1LEA DI, DATA2MOV CX, 20 ;20 个字符REPE CMPSB ;CX不为零时,字符相同继续比较,不同指令停止JNZ STOP若不同-> STOP;否则都相同iii. 把DATA仲的第3和第4个字节装入 A

33、XMOV AX, WORD PTR DATA1+2iv. 将AX的内容存入 DATA2+5开始的字节单元中。MOV WORD PTR DATA2+5, AX7. 执行下列指令后,AX寄存器中的内容是多少?TABLE DW 10,20,30,40,50ENTRY DW 3MOVBX, OFFSET TABLE ;BX=0000H(地址)ADDBX, ENTRY;BX=0003HMOV AX, BX;AX=1E00H8. 编写程序段,将 STRING仲的最后20个字符移到STRING2中(顺序不变)个字符DATA SEGMENTSTRING1 DB “0123456789ABCDEFGHIJKLM

34、NOPQRSTUV”WXY;3Z6ASCII 码STRING2 DB 20 DUP(?)L EQU STRING2- STRING1 ; STRING1 的长度 =36DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, ES:DATASTART: MOV AX, DATAMOV DS, AXMOV ES, AXLEA SI, STRING1 ;取 STRING1 串的首地址=0000HLEA DI, STRING2 ;取 STRING2串的首地址=0024H=36MOV CX, 20MOV AX, L ;AX=36=0024HSUB AX, CX ;AX

35、=36-20=0024H-0014H=0010HADD SI, AX;SI=SI+AX=0000H+0010H=0010HREP MOVSBMOV AH, 4CHINT 21HCODE ENDSEND START9. 假设一个48位数存放在DX AX BX中,试编写程序段,将该 48位数乘2CODE SEGMENTASSUME CS:CODESTART: MOV BX, 9ABCH ;设 DX AX BX=1234 5678 9ABCHMOV AX, 5678H ;DX AX BX*2=将DXAXBX左移一次MOV DX, 1234HSHL BX, 1;BX=BX*2=3578H, CF=1R

36、CL AX, 1 ;AX=AX*2+CF=ACF1H, CF=0RCL DX, 1;DX=DX*2+CF=2468H, CF=0MOV AH, 4CHINT 21HCODE ENDSEND STARTAX中10试编写程序,比较 AX BX CX中带符号数的大小,并将最大的数放在CODE SEGMENTASSUME CS:CODESTART: MOV AX, -5MOV BX, 6MOV CX, 10CMP AX, BXJGE LL1XCHG AX, BXLL1: CMP AX, CXJGE LL2XCHG AX, CXLL2: MOV AH, 4CHCODE ENDSEND START11.

37、若接口 03F8H的状态的数据(bl)和(b3)同时为1,表示接口 03F8H有准备好的8 位数据,当CPU将数据取走后,bl和b3就不再同时为1 了。仅当又有数据准备好 时才再同时为 1。试编写程序,从上述接口读入 20个数据,并顺序放在 DATA开始的地址中。DATAS SEGMENTDATA DB 20 DUP(?)DATAS ENDSCODES SEGMENTASSUME CS:CODES, DS:DATASSTART: MOV AX, DATAMOV DS, AXMOV CX, 20LEA BX, DATAMOV DX, 03F8HLOP: IN AL, DX ;NOT AL ;0T

38、EST AL, 00001010b是否同时为 1JNZ LOP;继续读状态IN AL, DX;数据MOV BX, AL ;INC BXDEC CXJNZ LOP ;MOV AH, 4CHINT 21H读接口状态将 AL 内容取反,若 b1=1 和 b3=1 取反后全为判断接口 03F8H的状态的数据(bl)和(b3)若相与的结果不为零表示接口没有准备好,若相与的结果为零表示接口准备好; 读接口存数据从接口读入 20 个数据CODES ENDSEND START12. 画图说明下列语句分配的存储空间及初始化的数据值(1) DATA1 DB BYTE, 12,12H, 2 DUP(O,?, 3)(

39、2) DATA2 DW 2 DUP(O,1,2),?,-5,256H13. 请用子程序结构编写如下程序:从键盘输入一个二位十进制的月份数(0112),然后显示出响应的英文缩写名0000H0001H0002H0003H14. 给出下列等值语句:LPHA EQU00BETA EQ125GRAMMEQU 4试求出下列表达式的值:(1) ALPHA*100+BETA;MOV AL, LPHAMOV BL, 100MOV CX, BETAMUL BL ;AL*BL->AXADD AX, CX(2) (ALPHA + 4)*BETA-2MOV AL, LPHAADD AL, 4MOV BL, BET

40、AMUL BL ;AL*BL->AXSUB AX, 2(3) (BETA/3)MOD 5 ;MOV AX, BETAMOV BL, 3DIV BLMOV AL, AL MOD 5(4) GRAMMOR 3MOV AL, GRAMMOR AL, 315. 图示以下数据段在存储器中的存放形式DATA SEGMENTDATA1 DB 10H,34H, 07H,09HDATA2 DW 2 DUP(42H)DATA3 DB HELLO'DATA4 EQU 12DATA5 DD 0ABCDHDATA ENDS16. 阅读下边的程序段,试说明它实现的功能是什么?DATAS SEGMENTDAT

41、A1 DB ABCDEF'GDATAS ENDSCODES SEGMENTASSUMECS:CODES, DS:DATASSTART: MOV AX, DATASMOV DS, AXMOV BX, OFFSET DATA1 ;BX 取 DATA1 地址,BX=0000HMOV CX, 7NEXT: MOV AH, 2 ;DOS 功能 2MOV AL, BXXCHG AL, DL ; 将要显示字符的 ASCII 送 DLINC BXINT 21HLOOP NEXT ; 功能是显示字符 ABCDEFGMOV AH, 4CHINT 21HCODES ENDSEND START17. 编写一程

42、序段,把 BUFFER开始的100个字节的内存区域初始化为 55H 0AAH55H 0AAH 、55H 0AAHDATAS SEGMENTBUFFER DB 100 DUP(?)DATASENDSCODES SEGMENTASSUME CS:CODES, DS:DATASSTART: MOV AX, DATASMOV DS, AXLEA BX, BUFFER ;BX取 BUFFER地址,BX=OOOOHMOV CX, 50LP: MOV BX,55HINC BXMOV BX.OAAHINC BXDEC CXJNZ LPMOV AH, 4CHINT 21HCODES ENDSEND START容

43、乘 2( 假定运算不会溢出 )DATASSEGMENTNUM0DB1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16L1DB 2,5,9,14,15L2DB 1,3,4,6,7,8,10,11,12,13,16DATASENDSCODESSEGMENTASSUMCES:CODES,DS:DATASSTART: MOVAX, DATASMOVDS, AXLEASI, L1LEADI, L2MOVCX, 5LP1:LEABX,NUM0ADDBL,SISUBBL,1ADDBYTE PTRBX, 3INC SILOOP LP1MOVCX, 11LP2: LEABX,NUM0ADDBL,DISUBBL,1; 左移 =*2SHLBYTE PTRBX,1INC DILOOP LP2MOVAH,4CHINT 21HCODES ENDSENDSTART19. 编写计算斐波那契数列前 20 个值的程序。斐波那契数列的定义如下:F(0)=0 ,F(1)=1 ,F(N)二F(N-1)+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论