现代微机复习试题答案_第1页
现代微机复习试题答案_第2页
现代微机复习试题答案_第3页
现代微机复习试题答案_第4页
现代微机复习试题答案_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

./第一章1、在8086变址寻址方式中,操作数的物理地址等于〔A.段寄存器左移四位加上变址寄存器的容B.段寄存器左移四位加上变址寄存器的容再加上给定的偏移量C.段寄存器左移四位加上变址寄存器的容再加上基址寄存器的容D.段寄存器左移四位加上基址寄存器的容再加上给定的偏移量2、段地址为3900H,偏移地址为5200H,则物理地址为〔A.8B00HB.3E200HC.44200HD.55900H3、8086能寻址存储器的最址围为〔A.64KBB.1MBC.16MBD.16KB4、取指令的物理地址=〔A.<DS>10H+偏移地址B.<ES>10H+偏移地址C.<SS>10H+<SP>D.<CS>10H+<IP>表1-2和AD0编码的含义5、8086CPU的控制线=0,地址线A0=0,CPU<>A.从偶地址开始完成8位数据传送B.从偶地址开始完成16位数据传送C.从奇地址开始完成8位数据传送D.从奇地址开始完成16位数据传送6、8086CPU在执行MOVAL,[BX]指令的总线周期,若BX存放的容为2034H,和A0的状态为〔A.0,1B.0,0C.1,1D.1,07、8086工作在最小模式下,当M/IO#=0,RD#=0,WR#=1时,CPU完成的操作是〔A.存储器读B.I/O读C.存储器写D.I/O写8、8086CPU有最小和最大两种工作模式,最大模式的特点是〔A.需要总线控制器8288B.由编程进行模式设定C.不需要8286收发器D.CPU提供全部的控制信号9、CPU与外设之间交换信息,一般有〔A.地址信息B.数据信息C.控制信息D.状态信息E.中断类型码10、8086/8088CPU工作在最小方式对存储器进行写操作有关的控制信号〔A.M/IO#B.WR#C.ALED.INTA#E.DT/R#11、如果8088/8086CPU的工作时钟CLK=4MHZ,请问:a、CPU正常工作时,Reset引脚至少出现多少微秒的高电平才能使CPU复位?b、在插入一个Tw的情况下,从存读出一个字节数据需要的时间是多少?答:〔1由于时钟为4MHZ,一个时钟周期为1/4=0.25微秒;CPU完成复位操作需要4个时钟周期,所以4*0.25=1微秒。〔2再加上1个TW情况下,共需要5个时钟周期,所以5*0.25=1.25微秒。12、当总线请求部件收到〔①信号后,就获得了总线控制权;在其控制总线时期,HOLD和HLDA都保持〔②。当总线部件用完总线后,HOLD变为低电平,于是CPU又重新控制总线,并使HALD变为〔③①A.HOLDB.HALDC.INTRD.INTA②A.低电平B.高电平C.高阻态D.不变③A.低电平B.高电平C.高阻态D.不变13、8086CPU上电复位后,CS=<FFFFH>,IP=<0000H>,DS=<0000H>,SP=<0000H>14、8086CPU之所以能有力地提高工作效率,其原因之一是总线接口部件和执行部件采用<并行>的工作方式。15、完成一个基本操作所用时间的最小单位是<时钟周期>,通常称它为一个<T>状态。完成一次读或写至少需要<4>个这样的状态。16、设DS:75存储单元开始存放11H、22H、33H,若要求占用的总线周期最少,则要<2>条指令才能将这3个数据读入到CPU中,这时占用<2>个总线周期。若执行MOVAX,[75]后,则AH=<22H>,AL=<11H>第二章1.构成4KB的存储系统,需要〔A.1024×4位的芯片8片B.2K×1位的芯片8片C.1024×8位的芯片2片D.16K×1位的芯片4片设存储器的地址线为20条,存储单元为字节,使用全译码方式组成存储器,该系统构成最大容量需要64K×1位的存储器芯片的数量是<>A.16B.32C.64D.1283.已知一个SRAM芯片的容量力8K×8,该芯片有一个片选信号引脚和一个读/写控制引脚,问该芯片至少有多少个引脚?地址线多少条?数据线多少条?还有什么信号线?答:根据存储芯片地址线数量计算公式,k=log2〔1024*8=log2〔213=13,即总计有13根地址线。另有8根数据线、2根电源线。所以该芯片至少有25〔=13+8+1+1+2根引脚。巳知一个DRAM芯片外部引脚信号中有4条数据线,7条地址线,计算它的容量。答:根据存储容量计算公式S=2k×I,可得该芯片的存储容量为:214*4=16K×4bit〔位,也可表示为64Kb=8KB〔字节5.组成8K字节的存储器,需要256×4位的存储器芯片〔。A.32片B.64片C.16片D.50片6.74LS138译码器的接线如图2-28所示,写出Y0、Y2、Y4、Y6所决定的存地址围。答:从图看出,该存储系统的片地址线有13根〔A12-A0,是一个由8KB存储芯片组成的存储系统,A17地址线不确定。它的地址分布为:00?0,CBA?,????,????,????其中,CBA作为译码输入,与输出选择有关;"?"表示可以为"0",也可以为"1"。于是:0Y对应的存地址围是:00000H—01FFFH;或20000H—21FFFH。2Y对应的存地址围是:04000H—05FFFH;或24000H—25FFFH。4Y对应的存地址围是:08000H—09FFFH;或28000H—29FFFH。6Y对应的存地址围是:0C000H—0DFFFH;或2C000H—2DFFFH7.断电后所存储信息会丢失的存储器是〔A.ROMB.RAMC.CD-ROMD.FLASH-MEMORY8.需要定期刷新的存储器类型为<>A.静态存储器B.动态存储器C.只读存储器D.易失性存储器9.EPROM是指<>A.只读存储器B.可编程的只读存储器C.可擦除可编程的只读存储器D.电可改写只读存储器10.某一SRAM芯片其容量为2KB,除电源和接地线之外,该芯片引线的最小数目是<>A.24B.26C.20D.2211.有一个存储体,其地址线15条,数据线为8条,则 1该存储体能够存储多少个汉字? 2如果该存储体由2K×4位的芯片组成,需要多少片? 3采用什么方法扩展?分析各位地址线的使用。答:1该存储体容量为215×8=32KB,存储一个汉字需要两个字节,因此,它能够存储16384〔16K个汉字。2需要2K×4位的芯片32片,[〔32K×8/〔2K×4=32]。3可采用字位全扩展方法,由2片4位的芯片组成1组8位的存储单元,16组扩展成32K的8位存储体。芯片直接使用的地址线〔片地址11根〔A0~A10,另外需要4根高位地址,连接到4-16译码输入端,产生16个译码信号用作16个芯片的片选信号。剩余的地址线用来确定该存储体的首地址。12.利用全地址译码将6264芯片接到8088系统总线上,地址围为30000H~31FFFH,画出逻辑图。答:全地址译码可以保证存储器芯片上的每一个单元在整个存空间中具有唯一的、独占的一个地址。6264芯片有13根地址线,剩余的高位7根地址线通过译码组合确定该芯片的起始地址〔30000H。.由30000H地址得出对应的地址线状态为:00110000000000000000可以看出A13~A19地址线为0011000,所以译码组合应逻辑为:=···A16·A17··=〔·····〔A16·A17=A13+A14+A15+A18+A19+A16·A1713.若用2164芯片构成容量为128KB的存储器,需多少片2164?至少需多少根地址线?其中多少根用于片寻址?多少根用于片选译码?答:2164A是容量为64K×1位的地图随机存储器芯片,构成128KB的存储器需要2164芯片16片[128K×8/〔64K×1=16]。由于地址空间为128K,需要的地址线总线为17根〔217=28根。其中,片地址线16根〔216=64K,片选地址线1根〔17—16=1。每8个2164芯片构成一组,进行位扩展,得到64KB存储器。两个这样的"组"进行地址扩展,构成128KB的存储器。14.某8088系统用2764ROM芯片和6264SRAM芯片构成16KB的存。其中,RAM的地址围为FC000H-FDFFFH,ROM的地址围为FE000H-FFFFFH。试利用74LS138译码,画出存储器与CPU的连接图,并标出总线信号名称。答:2764和6264均为8KB的存储芯片,需要13根地址线〔A0~A12用于片寻址。8080系统的其他地址线〔A13~A19用于产生片选信号。FC000H的地址线状态为:11111100000000000000FE000H的地址线状态为:11111110000000000000将A13~A15用作译码输入,其他地址〔A16~A19=1111用作译码控制,可以得到如下译码控制电路,连接如下图所示:15.存储周期指的是〔。A.存储器进行连续读或写操作所允许的最短时间间隔B.存储器的读出周期 C.存储器进行连续写操作所允许的最短时间间隔D.存储器的写入周期16.某一EPROM芯片,其容量为32K×8,除电源和地线外,最小的输入引脚和输出引脚分别为〔。 A.15和8; B.32和8; C.17和8; D.18和10;17.掩膜ROM在制造时通过光刻是否连接MOS管来确定0和1,如果对应的某存储单元位没有连接MOS管,则该位信息为〔。 A.不确定; B.0; C.1; D.可能为0,也可能为118.SRAM和DRAM存储原理不同,它们分别靠〔来存储0和1的。A.双稳态触发器的两个稳态和极间是否有足够的电荷 B.部熔丝是否断开和双稳态触发器 C.极间电荷和浮置栅是否积累足够的电荷 D.极间是否有足够的电荷和双稳态触发器的两个稳态第三章3.1如果用24b储存一个无符号数,这个数的围是什么?如果储存的是一个补码表示的有符号数,那么这个数的围又是什么?答:如果用24b储存一个无符号数,这个数的围应为:0~2-1如果用24b储存一个补码表示的有符号数,这个数的围应为:-2~2-13.2用符号">"把下面的数按从大到小的顺序"连接"起来[X1]补=10110111[X2]原=10110111[X3]反=1011011[X4]补=10110110[X5]无符号数=10110111解:X1=-0100

1001B,

X2=-011

0111B,

X3=-0100

1000B,

X4=-0100

1010B,

X5=+1011

0111B

因此:X5>X2>X3>X1>X43.3用8位补码完成下列运算,用十进制"真值"的格式给出运算结果,并指出运算后CF、OF、ZF、SF、PF标志位的状态。〔1127+126〔2126-127〔3-100-120〔4-100-<-120>解:〔1[127]=01111111,[126]=01111110,[127+126]=11111101,[127+126]=-00000011〔溢出COZSP=01010〔2[126]=01111110,[-127]=10000001,[126-127]=11111111,[126-127]=-0000001,COZSP=10011〔3-[-100]=10011100,[-120]=10001000,[-100-120]=00100100,[-100-120]=+00100100〔溢出,COZSP=01001〔4[-100]=10011100,[-120]=10001000,[-100-<-120>]=00010100,[-100-<-120>]=+00010100,COZSP=000013.4把二进制代码11000分别"看作"是:〔1二进制无符号数〔2二进制补码〔3压缩BCD码〔4非压缩BCD码哪一种情况下它代表的"值"最大?答:看做二进制无符号数时,它代表的"值"最大。分析:看作二进制补码时,它代表一个负数,而其他的情况下,它均正数。因此,看作二进制补码时,它代表的值最小。把这组代码用十六进制数字形式写出:9758对于无符号数,它的值等于十六进制的9758H;对于压缩BCD码,它的值等于十六进制的9758,显然小于9758H;对于非压缩BCD码,它的值等于十进制的78,显然更小于9758H;因此,看作二进制无符号数时,它代表的"值"最大。1EH30H41H42H43H0FFH00H0CAH1EH30H41H42H43H0FFH00H0CAH0020HXX db 30,30H,‘ABC’,2-3,?,11001010B dw 0FFH,-2,"CD"Y dd 20dup〔15,3dup〔?,0Z db 3dup〔?W dw Z-X假设变量X的偏移地址为20H。〔1写出变量X各数据在存中的具体位置和相关存单元的值。0FFH00H0FEH0FFH44H43H〔20FFH00H0FEH0FFH44H43H〔3写出变量W的值。答:〔1变量X各数据在存中的具体位置和相关存单元的值如右图。〔2变量Y的偏移地址为002H;变量Z的偏移地址为002EH+4520=01BEHY002EH〔3变量W的值等变量Z和X偏移地址之差01BEH-0020H=019EHY002EH它等于X、Y所占用存单元的字节数。3.6下列指令的源操作数段基址在哪个段寄存器中?〔1MOV AX,[BP][SI] SS〔2MOV AX,CS:8[DI]CS〔3MOV AX,2[EBP*1]SS〔4MOV AX,FS:4[ESP]FS〔5MOV AX,2[EBP][EAX]SS〔6MOVAX,[ECX][EBP*4]DS〔7MOC AX,[EDX][EBP]DS〔8MOVAX,ES:10[EBP][EAX*2]ES3.7判断下列指令是否正确。若不正确,指出错误原因〔1MOV AX,[EBX] √〔2MOV SI,DL×,两个操作数类型不匹配。〔3MOV EBP,[ESP][EAX*3]×,比例因子不能为3。〔4LEA AX,3006H×,LEA指令的源操作数必须为存操作数。〔5MOV [BP][DI],0×,操作数类型无法确定。〔6MOV [SI],[DI]是×,不能同时出现两个存操作数。〔7MOV ES,1000H×,装载段寄存器时,源操作数不能为立即数。〔8如果"X"是常数表达式定义的符号〔例如:XEQU5+6,或者是"DW"定义的存变量,指令MOV AX,X+2是正确的。否则这条指令是错误的。〔9MOVAX,CX+2 ×,源操作数表达式CX+2不是一个可以直接计算的"常数表达式"。〔10指令MOV [EAX][EAX*2],AL√3.8 现有〔DS=2000H,〔BX=0100H,〔SI=0002H,〔20100H=12H,〔20101H=34H,〔20102H=56H,〔20103H=78H,〔21200H=2AH,〔21201H=4CH,〔21202H=0B7H,〔21203H=65H,说明下列指令执行后AX寄存器的容〔1MOV AX,1200H执行后,〔AX=1200H〔立即操作数。〔2MOV AX,BX执行后,〔AX=0100H〔寄存器操作数。〔3MOV AX,[1200H]执行后,〔AX=4C2AH〔直接地址,EA=1200H〔4MOV AX,[BX]执行后,〔AX=3412H〔寄存器间接寻址,EA=0100H〔5MOV AX,1100H[BX]执行后,〔AX=4C2AH〔相对地址,EA=1200H〔6MOV AX,[BX][SI]执行后,〔AX=7856H〔基址变址寻址,EA=0102H〔7MOV AX,1100H[BX][SI]执行后,〔AX=65B7H〔相对基址变址寻址EA=1202H3.9下面两条指令的功能有什么区别?MOV AX,BX:把BX寄存器的容装入到AX中。MOVAX,[BX]:把存储器一个字的容装入AX寄存器。该字的段基址在DS中,偏移地址在BX中。3.10写出执行以下计算的指令序列,各变量均为16位有符号数。〔1

Z←W+<Z-X>〔2

Z←W-<X+6>-<R+9>〔3

Z←<W*X>/<Y+6>,R←余数〔4

Z←<W-X>/<5*Y>*2解:.〔1MOVAX,WMOVBX,ZSUBBX,XADDAX,BXMOVZ,AX..〔2MOVAX,WMOVBX,XADDBX,6SUBAX,BXMOVBX,RADDBX,9SUBAX,BXMOVZ,AX..〔3MOVAX,WIMULXMOVBX,YADDBX,9IDIVBXMOVZ,AXMOVR,DX..〔4MOVAX,YMOVBX,5IMULBXMOVBX,AXMOVAX,WSUBAX,XMOVCX,2IMULCXIDIVBXMOVZ,AX.3.11一个双字长有符号数存放在DX〔高位AX〔低位中,写出求该数相反数的指令序列。结果仍存入DX,AX寄存器。.解:NOTDXNOTAXADDAX,1ADCDX0.3.12存缓冲区BUFFER定义如下,按照要求,写出指令序列 BUFFER DB 20DUP<?>〔1将缓冲区全部置为0,并使执行时间最短。〔2将缓冲区全部置为空格字符〔ASCII代码20H,使用的指令条数最少〔3将缓冲区各字节依次设置为0,1,2,3,4,……,19〔4将缓冲区各字节依次设置为0,-1,-2,-3,-4,……,-19〔5将缓冲区各字节依次设置为30,29,28,27,……,11〔6将缓冲区各字节依次设置为0,2,4,6,8,……,38〔7将缓冲区各字节依次设置为0,1,2,3,0,1,2,3,…,3.解:〔1XOREAX,EAXMOVDWORDPTR[BUFFER],EAXMOVDWORDPTR[BUFFER+4],EAXMOVDWORDPTR[BUFFER+8],EAXMOVDWORDPTR[BUFFER+12],EAXMOVDWORDPTR[BUFFER+16],EAX..〔2MOVAL,20HMOVCX,20LEABX,BUFFERONE:MOV[BX],BUFFERINCBXLOOPONE..〔3XORBX,BXMOVCX,20ONE:MOVBUFFER[BX],BLINCBXLOOPONE..〔4XORBX,BXXORALMOVCX,20ONE:MOVBUFFER[BX],ALINCBXDECALLOOPONE..〔5XORBX,BXMOVAL,30MOVCX,20ONE:MOVBUFFER[BX],ALINCBXDECALLOOPONE..〔6XORBX,BXXORALMOVCX,20ONE:MOVBUFFER[BX],ALINCBXADDAL,2LOOPONE..〔7XORBX,BXMOVCX,5ONE:MOVBUFFER[BX],0MOVBUFFER[BX+1],1MOVBUFFER[BX+2],2MOVBUFFER[BX+3],3ADDBX,4LOOPONE.3.13编写循环结构程序,进行下列计算,结果存入RESULT单元〔11+2+3+4+5+6+……+100〔21+3+5+7+9+11+……+99〔32+4+6+8+10+……+100〔41+4+7+10+13+……+100〔511+22+33+44+……+99.解:〔1

CODE

SEGMENT

ASSUME

CS:

CODE

RESULT

DW

?

START:

XOR

AX,

AX

MOV

CX,

100

AGAIN:

ADD

AX,

CX

LOOP

AGAIN

MOV

RESULT,

AX

MOV

AX,

4C00H

INT

21H

CODE

ENDS

END

START

..〔2CODE

SEGMENT

ASSUME

CS:

CODE

RESULT

DW

?

START:

XOR

AX,

AX

MOV

CX,

50

MOV

BX,

1

AGAIN:

ADD

AX,

BX

ADD

BX,

2

LOOP

AGAIN

MOV

RESULT,

AX

MOV

AX,

4C00H

INT

21H

CODE

ENDS

END

START

..〔3

CODE

SEGMENT

ASSUME

CS:

CODE

RESULT

DW

?

START:

XOR

AX,

AX

MOV

CX,

50

MOV

BX,

2

AGAIN:

ADD

AX,

BX

ADD

BX,

2

LOOP

AGAIN

MOV

RESULT,

AX

MOV

AX,

4C00H

INT

21H

CODE

ENDSEND

START

..〔4

CODE

SEGMENT

ASSUME

CS:

CODE

RESULT

DW

?

START:

XOR

AX,

AX

MOV

CX,

34

MOV

BX,

1

AGAIN:

ADD

AX,

BX

ADD

BX,

3

LOOP

AGAIN

MOV

RESULT,

AX

MOV

AX,

4C00H

INT

21H

CODE

ENDSEND

START

..〔5

CODE

SEGMENT

ASSUME

CS:

CODE

RESULT

DW

?

START:

XOR

AX,

AX

MOV

CX,

9

MOV

BX,

11

AGAIN:

ADD

AX,

BX

ADD

BX,

11

LOOP

AGAIN

MOV

RESULT,

AX

MOV

AX,

4C00H

INT

21H

CODE

ENDS

END

START.3.14已知ARRAY是5行5列的有符号字数组,编写程序,进行下列计算〔假设和仍然为16b,不会产生溢出〔1

求该数组每一行上第4列元素之和〔列号从0开始〔2

求该数组第3行所有元素之和〔行号从0开始〔3

求该数组正对角线上所有元素之和〔4

求该数组反对角线上所有元素之和解:假设数据段已定义如下:.DATA

SEGMENT

ARRAY

DW

1,

6,

9,

23,12

;定义数组ARRAY

DW

54,

23,

15,

-92,

37

;每一行5个数据DW

-99,

231,

76,

81,

90

;共5行DW

33,

67,

81,

-99,

0

;共计25个数据DW

123,

-52,

77,

-180,

89

SUM

DW

?

;SUM存放结果DATA

ENDS

..CODE

SEGMENT

ASSUME

CS:

CODE,

DS:

DATA

START:

MOV

AX,

DATA

MOV

DS,

AX

MOV

AX,

0

;累加器在循环之前清零MOV

CX,

5

;计数器置初值MOV

SI,

4*2

;第1行第4列元素在数组的位移NEXT:

ADD

AX,

ARRAY[SI]

ADD

SI,

5*2

;SI指向下一行第4列元素LOOP

NEXT

MOV

SUM,

AX

MOV

AX,

4C00H

INT

21H

CODE

ENDS

END

START

..CODE

SEGMENT

ASSUME

CS:

CODE,

DS:

DATA

START:

MOV

AX,

DATA

MOV

DS,

AX

MOV

AX,

0

;累加器在循环之前清零MOV

CX,

5

;计数器置初值MOV

SI,

3*5*2

;第3行第0列元素在数组的位移NEXT:

ADD

AX,

ARRAY[SI]

ADD

SI,

2

;SI指向本行下一列元素LOOP

NEXT

MOV

SUM,

AX

MOV

AX,

4C00H

INT

21H

CODE

ENDS

END

START..CODE

SEGMENT

ASSUME

CS:

CODE,

DS:

DATA

START:

MOV

AX,

DATA

MOV

DS,

AX

MOV

AX,

0

;累加器在循环之前清零MOV

CX,

5

;计数器置初值MOV

SI,

0

NEXT:

ADD

AX,

ARRAY[SI]

ADD

SI,

5*2+2

LOOP

NEXT

MOV

SUM,

AX

MOV

AX,

4C00H

INT

21H

CODE

ENDS

END

START

..CODE

SEGMENT

ASSUME

CS:

CODE,

DS:

DATA

START:

MOV

AX,

DATA

MOV

DS,

AX

MOV

AX,

0

MOV

CX,

5

MOV

SI,

4*2

NEXT:

ADD

AX,

ARRAY[SI]

ADD

SI,

<5-1>*2

LOOP

NEXT

MOV

SUM,

AX

MOV

AX,

4C00HINT

21H

CODE

ENDS

END

STAR.3.15变量X,Y,Z均为一字节压缩BCD码表示的十进制数,写出指令序列,求它们的和〔用2字节压缩BCD码表示。.解:

XOR

AX,

AXMOV

AL,

X

ADD

AL,

Y

;完成X+Y

DAA

;压缩BCD码加法调整ADC

AH,

0

ADD

AL,

Z

;完成X+Y+Z

DAA

;压缩BCD码加法调整ADC

AH,

0.3.16设〔BX=0E3H,变量VALUE中存放容为79H,指出下列指令单独执行后的结果。〔1指令"XOR

BX,

VALUE"执行后,〔BX=

009AH

〔2指令"AND

BX,

VALUE"执行后,〔BX=

0061H

〔3指令"OR

BX,

VALUE"执行后,〔BX=

00FBH

〔4指令"XOR

BX,

0FFH"执行后,〔BX=

001CH

〔5指令"AND

BX,

BX"执行后,〔BX=

00E3H

〔6指令"AND

BX,

0"执行后,〔BX=

0000H3.17编写程序,从键盘上输入20个十进制数字,求这些数字的和,向显示器输出。答:.INCLUDE

YLIB.H

DATA

SEGEMNT

MESS1

DB

0DH,

0AH,

„Input

20

decimal

digits

please

:

$‟MESS2

DB

0DH,

0AH,

„Their

sum

is

:

$‟

DATA

ENDS

CODE

SEGMENT

ASSUME

CS:

CODE,

DS:

DATA

START:

MOV

AX,

DATA

MOV

DS,

AX

LEA

DX,

MESS1

MOV

AH,

09H

INT

21H

;输出提示信息XOR

BX,

BX

;BX用作累加器,清零MOV

CX,

20

;循环计数器置初值AGAIN:

MOV

AH,

01H

INT

21H

;输入一个数字〔在AL中AND

AL,

0FH

;转换成二进制数ADD

BL,

AL

;累加ADC

BH,

0

LOOP

AGAIN

LEA

DX,

MESS2

MOV

AX,

BX

CALL

WRITEDEC

;输出20个数字的和CALL

CRLF

MOV

AX,

4C00H

INT

21H

CODE

ENDSEND

START.3.18阅读以下程序,指出它的功能。.MOV CL,04 SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL.答:把32位二进制代码〔DX,

AX联合左移4位。3.19已知〔DX=0B9H,〔CL=3,〔CF=1,确定下列指令单独执行以后DX寄存器的值。〔1指令"SHR

DX,

1"执行之后,〔DX=

005CH

〔2指令"SAR

DX,

CL"执行之后,〔DX=

0017H

〔3指令"SHL

DX,

CL"执行之后,〔DX=

05C8H

〔4指令"SHL

DL,

1"执行之后,〔DX=

0172H

〔5指令"ROR

DX,

CL"执行之后,〔DX=

2017H

〔6指令"ROL

DX,

CL"执行之后,〔DX=

05C8H

〔7指令"SAL

DH,

1"执行之后,〔DX=

00B9H

〔8指令"RCL

DX,

CL"执行之后,〔DX=

05CCH

〔9指令"RCR

DL,

1"执行之后,〔DX=

00DCH3.20编写程序,从键盘上输入一个0~65535之间的十进制无符号数,然后用二进制格式输出这个值。例如,键盘输入"35",显示器输出"0000000000100011"。答:.INCLUDE

YLIB.H

DATA

SEGEMNT

MESS1

DB

0DH,

0AH,

„Input

a

unsigned

decimal

integer

number

please

:

$‟

MESS2

DB

0DH,

0AH,

„The

number

in

binary

is

:

$‟

DATA

ENDS

CODE

SEGMENT

ASSUME

CS:

CODE,

DS:

DATA

START:

MOV

AX,

DATA

MOV

DS,

AX

LEA

DX,

MESS1

CALL

READDEC

;输入一个无符号整数MOV

BX,

AX

;转存入BX

LEA

DX,

MESS2

MOV

AH,

09H

INT

21H

;输出提示信息MOV

CX,

16

;循环计数器置初值AGAIN:

SHL

BX,

1

;向左外移一位,进入CF

MOV

DL,

30H

ADC

DL,

0

;形成一位二进制数字的ASCII代码MOV

AH,

2

INT

21H

;输出一个二进制数字LOOP

AGAIN

;循环16次CALL

CRLF

MOV

AX,

4C00H

INT

21H

CODE

ENDS

END

START.3.21无符号数变量X用DD定义,编写程序,用十六进制格式输出变量X的值。.答:

386

DATA

SEGEMNT

USE16

X

DD

36895471

;一个32B长整数MESS

DB

0DH,

0AH,

„The

X

in

hexdecimal

is

:

$‟

HEXTAB

DB

„0123456789ABCDEF‟

DATA

ENDS

CODE

SEGMENT

USE16

ASSUME

CS:

CODE,

DS:

DATA

START:

MOV

AX,

DATA

MOV

DS,

AX

LEA

DX,

MESS

MOV

AH,

09H

INT

21H

;输出前导信息MOV

ESI,

X

;将X存入ESI

MOV

CX,

8

;循环计数器置初值LEA

BX,

HEXTAB

;换码表首地址装入BX

AGAIN:

ROL

ESI,

4

;把最高4位移到最低4位上MOV

AX,

SI

;低8位转入AL

AND

AX,

0004H

;清除高4位XLAT

;转换成十六进制数字的ASCII代码MOV

DL,

ALMOV

AH,

2

INT

21H

;输出一个十六进制数字LOOP

AGAIN

;循环16次MOV

AX,

4C00H

INT

21H

CODE

ENDS

END

START.3.22编写指令序列,把AX中的16b二进制分为4组,每组4b,分别置入AL,BL,CL,DL中。.答:

MOV

DX,

AX

;最低4位直接进入DX

MOV

CX,

4

ROL

AX,

CL

;最高4位移入最低4位PUSH

AX

;压入堆栈保存〔准备送入AL

ROL

AX,

CL

;次高4位移入最低4位MOV

BX,

AX

;送入BL

ROL

AX,

CL

;第3组4位移入最低4位MOV

CX,

AX

;送入CL

POP

AX

;从堆栈中弹出原最高4位AND

AX,

000FH

;清除高12位AND

BX,

000FH

;清除高12位AND

CX,

000FH

;清除高12位AND

DX,

000FH

;清除高12位.1、I/O设备与CPU之间交换信息,其状态信息是通过_B___总线传送给CPU的。A.地址B.数据C.控制D.三者均可2.8086/8088微处理器可寻址的最大I/O空间为〔CA.8KBB.32KBC.64KBD.1MB3.CPU与I/O设备交换信息,无需要传送〔D信息。A.数据B.状态C.控制D.地址4.I/O单独编址方式下,从端口输入数据可使用<C>。A.MOVB.OUTC.IND.XCHG5.CPU对外部设备的访问实质是对<B>的访问。A.接口B.I/O端口C.I/O设备D.接口电路6.8086/8088对10H端口进行写操作,正确指令是<A>。A.OUT10H,ALB.OUT[10H],C.OUTAL,10HD.OUTAL,[10H]7.设计输入输出接口电路时,输入接口电路的关键器件是〔三态缓冲器;输出接口电路的关键器件是<锁存器>。8.可用作简单输入接口的电路是〔D。A.译码器B.锁存器C.方向器D.三态缓冲器9.判断:接口的基本功能是输入锁存,输出缓冲。×10.I/O端口的独立编址方式特点有<B>。A.地址码较长B.需用专用I/O指令C.只需要存储器存取指令D.译码电路简单11.I/O端口的编址方式一般有<I/O独立编址>和<统一编址>两种。12.从硬件角度看,采用硬件最少的数据传送方式是<B>A.DMA控制B.无条件传送C.查询传送D.中断传送13.DMA方式是主机与外设之间传送数据的一种方式,他是在<DMAC>的控制下,<存储器>与<外部设备>之间直接进行数据交换。14.从输入设备向存输入数据时,若数据不需要经过CPU,其I/O数据传送控制方式是<C>。A.程序查询方式B.中断方式C.DMA方式D.直接传送方式15.主机与外设之间有三种传送方式,中断方式的主要优点是<D>.A.接口电路简单、经济需要硬件少B.传送速度快C.CPU时间利用率最高D.能实时响应I/O设备请求16.写出主机与外围设备之间数据交换的4种方式:<无条件传送>,<查询式传送>,<中断方式传送>和<直接存储器存取方式>。17.微机系统中,主机与外设之间交换信息通常采用<程序>,<中断>和<DMA>方式。18.8086CPU工作在DMA方式有关的两个引脚是<HOLD>和<HLDA>19.一个接口电路的基本功能包括<设备选择功能>,<信息传输功能>,<数据格式转换功能>。20.8086CPU工作在DMA方式时,其AD0-15引脚处于<高阻状态>第四章4.1什么是"三种基本结构"?解释"基本"两个字在其中的含义。答:三种基本结构指:顺序结构,选择结构、循环结构。

使用这3种结构,可以编制出任何所需要的程序,因此冠以"基本"结构。4.2什么叫做"控制转移指令"?它和数据传送、运算指令有什么区别?它是怎样实现它的功能的?答:控制转移指令是可以改变指令执行顺序的指令。数据传送、运算指令总是顺序执行的,而控制转移指令通过改变IP和/或CS寄存器的值,改变了程序指令的执行顺序。4.3指令"JMPDI"和"JMPWORPTR[DI]"作用有什么不同?请说明。答:上述两条指令都是段近转移指令,但是偏移地址的来源不同。指令"JMP

DI"执行时,新的偏移地址在DI寄存器,"JMP

WORD

PTR

[DI]"时,目的偏移地址在存储单元中,该存储单元的地址在DS:

DI中。4.4已知〔AX=836BH,X分别取下列值,执行"CMPAX,X"后,标志位ZF、CF、OF、SF各是什么?〔1X=3000H 〔2X=8000H〔3X=7FFFFH〔4X=0FFFFH 〔5X=0答:上述指令执行后,标志位ZF、CF、OF、SF的状态分别是:〔1ZCOS=0010〔2ZCOS=0000〔3ZCOS=0010〔4ZCOS=0101〔5ZCOS=00014.5已知〔AX=836BH,X分别取下列值,执行"TESTAX,X"后,标志位ZF、CF、OF、SF各是什么?〔1X=0001H 〔2X=8000H〔3X=0007H〔4X=0FFFFH 〔5X=0 答:上述指令执行后,标志位ZF、CF、OF、SF的状态分别是:〔1ZCOS=0000〔2ZCOS=0001〔3ZCOS=0000〔4ZCOS=0001〔5ZCOS=10004.6测试名为X的一个字节,如果X的第1,3位均为1,转移到L1,如果只有一位为1,转移到L2,如果两位全为0,转移到L3。写出对应的指令序列。.答:MOVAL,XANDAL,00001010BJZL3CMPAL,00001010BJEL1JMPL2.4.7假设X和X+2字单元存放有双精度数P,Y和Y+2字单元存放有双精度数Q,下面程序完成了什么工作?. MOV DX,X+2 MOV AX,X ADD AX,X ADC DX,X+2 CMP DX,Y+2 JL L2 JG L1 CMP AX,Y JBE L2L1: MOV Z,1 JMP SHORTEXITL2: MOV Z,2EXIT:…….答:程序根据2P与Q的大小,确定Z的值。如果2P≤Q,则Z=2如果2P>Q,则Z=14.8编写指令序列,将AX和BX中较大的绝对值存入AX,较小的绝对值存入BX。.答:ANDAX,AXJGESKIP1NEGAXSKIP1:ANDBX,BXJGESKIP2NEGBXSKIP2:CMPAX,BXJGESKIP3XCHGAX,BXSKIP3:…….4.9编写指令序列,比较AX、BX中的数的绝对值,绝对值较大的数存入AX,绝对值较小的数存入BX。.答:PUSHAXPUSHBXANDAX,AXJGESKIP1NEGAXSKIP1:ANDBX,BXJGESKIP2NEGBXSKIP2:CMPAX,BXPOPBXPOPAXJGESKIP3XCHGAX,BXSKIP3:…….4.10编写指令序列,如果AL寄存器存放的是小写字母,把它转换成大写字母,否则不改变AL容。.答:CMPAL,‘a’JBDONECMPAL,‘z’JADONESUBAL,‘a’-‘A’DONE:…….4.11计算分段函数:X的值从键盘输入,Y的值送显示器输出。.答:INCLUDEYLIB.HDATASEGEMNTMESS1DB0DH,0AH,„InputvalueofXplease:$‟MESS2DB0DH,0AH,„Y=:$‟DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEADX,MESS1CALLREADINTCMPAX,-2JGEL2L1:SUBAX,3;AX←X-3JMPDONEL2:CMPAX,3JGL3MOVBX,AXADDAX,AX;AX←2XADDAX,AX;AX←4XADDAX,BX;AX←5XADDAX,6;AX←5X+6JMPDONEL3:MOVAX,2;AX←2DONE:LEADX,MESS2CALLWRITEINTCALLCRLFMOVAX,4C00HINT21HCODEENDSENDSTART.4.12计算分段函数:A,B的值从键盘输入,Y的值送显示器输出〔∧表示"并且",∨表示"或者"。.答:INCLUDEYLIB.HDATASEGEMNTMESS1DB0DH,0AH,„InputthevalueofAplease:$‟MESS2DB0DH,0AH,„InputthevalueofBplease:$‟MESS3DB0DH,0AH,„Y=:$‟ADW?BDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEADX,MESS1CALLREADINTMOVA,AXLEADX,MESS2CALLREADINTMOVB,AXANDAX,AXJLL1;B<0,转L1CMPA,0JLL1;A<0,转L1JNZSKIP1CMPB,0JZL2;A=0&&B=0,转L2JMPEXITSKIP1:CMPB,0JLEEXITL3:MOVAX,ASUBAX,BJMPDISPL2:MOVAX,2JMPDISPL1:MOVAX,AADDAX,BDISP:LEADX,MESS2CALLWRITEINTCALLCRLFEXIT:MOVAX,4C00HINT21HCODEENDSENDSTART.说明:如果把A、B看作是平面直角坐标的两根轴,那么这个函数在A,B的正轴上无定义。无法计算,也无法输出结果4.13编写程序,求10元素字数组LIST中绝对值最小的数,存入MIN单元。.答:DATASEGEMNTLISTDW-56,+12,88,-126,-5,16,32,-99,72,-18MINDW?MINABSDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,LISTMOVMIN,AXMOVMINABS,32767LEASI,LISTMOVCX,10AGAIN:MOVAX,[SI]CMPAX,0JGESKIP1NEGAXSKIP1:CMPAX,MINABSJGESKIP2MOVMINABS,AXMOVAX,[SI]MOVMIN,AXSKIP2:ADDSI,2LOOPAGAINMOVAX,4C00HINT21HCODEENDSENDSTART.说明:一定要预设最小的绝对值和绝对值最小的数,而且这个绝对值最小的数必须来自LIST数组。4.14编写程序,求20元素无符号字数组ARRAY中最小的奇数,存入ODD单元,如果不存在奇数,将ODD单元清零。.答:DATASEGEMNTARRAYDW56,12,88,126,5,16,32,99,72,18DW116,34,92,32,156,42,816,16,15,218ODDDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVBX,0MOVODD,65535LEASI,ARRAYMOVCX,20AGAIN:MOVAX,[SI]TESTAX,1JZSKIPINCBXCMPAX,ODDJGESKIPMOVODD,AXSKIP:ADDSI,2LOOPAGAINCMPBX,0JNZDONEMOVODD,0DONE:MOVAX,4C00HINT21HCODEENDSENDSTART.4.15一个有符号字数组以0为结束标志,求这个数组的:最大值、最小值、平均值。.答: DATA SEGEMNT LIST DW -56,+12,88,-126,-5,16,32,-99,72,-18,0 MIN DW ? MAX DW ? AVG DW ?DATA ENDS CODE SEGMENTASSUMECS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AXMOV MIN,32767MOV MAX,-32768MOV AVG,0LEA SI,LISTMOV CX,0AGAIN: MOV AX,[SI]CMP AX,0JZ DONEINC CXADD AVG,AXCMP AX,MINJGE SKIP1MOV MIN.AXSKIP1: CMP AX,MAXJLE SKIP2 MOV MAX,AX SKIP2: ADDSI,2 JMP AGAIN DONE: JCXZNULL MOV AX,AVG CWD IDIV CX MOV AVG,AX JMP EXIT NULL: MOV MIN,0 MOV MAX,0 MOV AVG,0EXIT: MOV AX,4C00H INT 21H CODE ENDS END START.4.16数组SCORE中存有一个班级40名学生的英语课程成绩。按照0~59,60~74,75~84,85~100统计各分数段人数,存入N0,N1,N2,N3变量。.答: DATA SEGEMNTSCORE DW 40 DUP<?> N0 DW ? N1 DW ? N2 DW ? N3 DW ?DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOVAX,DATA MOV DS,AX MOV N0,0MOV N1,0MOV N2,0MOV N3,0LEA SI,SCOREMOV CX,40AGAIN: MOV AX,[SI]CMPAX,59JA L1 L0: INC N0 JMPNEXT L1: CMP AX,74 JA L2 INC N1 JMP NEXT L2: CMP AX,84 JA L3 INC N2 JMP NEXT L3: CMP AX,100 JA NEXT INC N3 NEXT: ADD SI,2 LOOP AGAINEXIT: MOV AX,4C00H INT 21H CODE ENDS END START.4.17STRING是一个16个字符组成的字符串,RULE是一个字整数。编写程序,测试STRING中的每一个字符,如果该字符为数字字符,把RULE中对应位置1,否则置0。.答: DATA SEGEMNT STRINGDB 16DUP<?> RULE DW ? DATA ENDS CODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV RULE,0LEA SI,STRINGMOV CX,16 AGAIN: SHL RULE,1MOV AL,[SI]CMPAL,’0’JB NEXTCMP AL,‘9JA NEXTOR RULE,11 NEXT: INC SI LOOP AGAINEXIT: MOV AX,4C00H INT 21H CODE ENDS END START.4.18编写程序,从键盘上输入一个无符号字整数,用"四进制"格式输出它的值〔也就是,每2位二进制看作一位四进制数,使用数字0~3。.答: INCLUDE YLIB.HDATA SEGEMNT MESS1 DB 0DH,0AH,‘Inputanumberplease:$’ MESS2 DB 0DH,0AH,‘Thenumberinquardri_systemis:$’ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA DX,MESS1 CALL READDEC MOVBX,AX;转存到BX LEA DX,MESS2 MOV AH,9 INT 21H MOV CX,8 ONE: ROL BX,1 ROL BX,1 MOV DL,BL AND DL,00000011B OR DL,30H MOV AH,2 INT 21H LOOP ONE CALL CRLFMOV AX,4C00HINT 21H CODE ENDS END START.4.19编写程序,把一个30个元素的有符号字数组ARRAY按照各元素的正负分别送入数组P和M,正数和零元素送P数组,负数送M数组。.答: DATA SEGEMNTARRAY DW 30DUP<?>P DW 30DUP<?> M DW30DUP<?>DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA BX,ARRAY MOV SI,0 MOV DI,0 MOV CX,30 ONE: MOV AX,[BX] AND AX,AL JGE PLUS MINUS: MOV M[DI],AX ADD DI,2 JMP NEXTPLUS: MOV P[SI],AX ADD SI,2 NEXT: ADD BX,2 LOOP ONEMOV AX,4C00H INT 21H CODE ENDS END START.4.20缓冲区BUFFER中存放有字符串,以00H为结束标志。编写程序,把字符串中的大写字母转换成小写字母。.答: DATA SEGEMNTBUFFER DB ‘AStringforTest.’,0 DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AXLEA BX,BUFFER ONE: MOV AL,[BX] AND AL JZ QUIT CMP AL,‘A’ JB NEXT CMP AL,‘Z’ JA NEXT ADD AL,‘a’-‘A’ MOV [BX],AL NEXT: INC BX JMP ONE QUIT: MOV AX,4C00H INT 21H CODE ENDS END START.4.21编写程序,从键盘上输入无符号字整数X,Y的值,进行X+Y的运算,然后按以下格式显示运算结果和运算后对应标志位的状态。SUM=XXXXZF=X,OF=X,SF=X,CF=X.答: INCLUDE YLIB.H CODE SEGMENTASSUME CS:CODE MESS1 DB 0DH,0AH,‘Inputaunsignedintegerplease:$’MESS2 DB 0DH,0AH,‘SUM=$’MESS3 DB 0DH,0AH,‘ZF=’ZF DB ?DB ‘,OF=’OF DB ?DB ‘,SF=’SF DB ?DB ‘,CF=’CF DB ?DB 0DH,0AH,‘$’START:PUCHCS POP DS LEA DX,MESS1 CALL READDEC MOV CX,AXLEA DX,MESS1CALL READDEC ADD AX,CX PUSHF LEA DX,MESS2 CALL WRITEDEC POP BX MOV AL,‘0 TEST BX,1000000B JZ SKP1 INC AL SKIP1: MOV ZF MOV AL,‘0 TESTBX,0B JZ SKP2 INC AL SKIP2: MOV OF,ALMOV AL,‘0TEST BX,10000000B JZ SKP3 INC AL SKIP3: MOV SF,ALMOV AL,‘0 TEST BX,1 JZ SKP4 INC AL SKIP4: MOV CF,AL LEA DX,MESS3 MOV AH,9 INT 21H MOV AX,4C00H INT 21H CODE ENDS END START.4.22编写程序,从键盘上输入一个字符串,统计其中数字字符,小写字母,大写字母,空格的个数并显示。.答:INCLUDE YLIB.H CODE SEGMENTASSUME CS:CODE MESS1 DB 0DH,0AH,‘Inputastringplease:$’ BUFFER DB 81,?,81DUP<?>MESS2DB 0DH,0AH,‘Digits:$’MESS3 DB 0DH,0AH,‘Uppercasealphabet:$’MESS4 DB 0DH,0AH,‘Lowercasealphabet:$’MESS5 DB 0DH,0AH,‘Space:$’START:POSHCS POP DS LEA DX,MESS1MOV AH,09H INT 21HLEA DX,BUFFER MOV AH,0AH INT 21H XOR DX,DX XOR BX,BX MOV CL,BUFFER+1 MOV CH,0 LEA SI,BUFFER+2 ONE: MOV AL,[SI]CMP AL,‘‘ JNE L2 L1: INC DL JMP NEXT L2: CMP AL,‘0 JB NEXTCMP AL,‘9 JA L4 L3: INC DH JMP NEXT L4: CMP AL,‘A’ JB NEXT CMP AL,‘Z’ JA L6L5: INC BHJMP NEXT L6: CMP AL,‘a’ JB NEXT CMP AL,‘z’ JA NEXT INC BLNEXT: INC SI LOOP ONEPUSH DX MOV AL,DHLEA DX,MESS2 MOV AH,0 CALL WRITEDECLEA DX,MESS4 MOV AL,BL MOV AH,0 CALL WRITEDECLEA DX,MESS3 MOV AL,BH MOV AH,0 CALL WRITEDECPOP DX MOV AL,DL MOV AH,0LEA DX,MESS5 CALL WRITEDEC MOV AX,4C00H INT 21H CODE ENDS END START.4.23编写程序,读入20个数据,统计每个相同数据出现的次数。.答: INCLUDE YLIB.HDATA SEGEMNTNUMBER DW 20DUP<?>TIMES DW 20DUP<?>MESS DB 0DH,0AH,‘InputanumberofNO.$’ DATA ENDS CODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AXLEASI,NUMBER MOV CX,20 MOV BX,1 INPUT: LEA DX,MESS MOV AX,BX CALLWRITEDEC MOV DX,-1 CALLREADDEC MOV [SI],AL INC BX ADD SI,2LOOP INPUT LEA BX,TIMES MOV CX,20INIT: MOV BYTEPTR[BX],-1 ADD BX,2LOOP INIT MOV DI,0 MOV CX,20 STAT0: PUSH CX MOV CX,20 MOV SI,0 MOV AL,NUMBER[DI]STAT1: CMP AL,NUMBER[SI] JNE SKIP INC TIMES[DI] SKIP: ADD SI,2LOOP STAT1 POP CX ADD DI,2LOOP STAT0MOV AX,4C00H INT 21H CODE ENDS END START.4.24编写程序,打印九九乘法表。.答: INCLUDE YLIB.H CODE SEGMENT ASSUME CS:CODE SPACE DB ‘$’ START: CALL CRLFMOV SI,1 MOV CX,9 LOOP0: PUSH CX MOV CX,9 MOV DI,1 LOOP1: MOV AX,SI MUL DI MOV DX,-1 CMP AX,10 JAE SKIP LEA DX,SPACE SKIP: CALLWRITEDECINCDILOOP LOOP1 CALL CRLFIINCSI POP CXLOOP LOOP0 MOV AX,4C00H INT 21H CODE ENDS END START.4.25编写程序,显示1000以的所有素数。.答: INCLUDE YLIB.H CODE SEGMENTASSUME CS:CODE START: CALL CRLFMOV SI,2 MOV CX,0 ONE: MOV DI,SI SHR DI,1 MOV BX,2 TST: CMP BX,DI JA OK MOV AX,SI CWD DIV BX CMP DX,0 JZ NEXT INC BX JMP TST OK: INC CXCMP CX,10 JLE OUTPUT XOR CX,CX CALL CRLF OUTPUT:MOV DX,-1 MOV AX,SI CALL WRITEDEC NEXT: INC SI CMP SI,1000 JB ONE CALL CRLF MOV AX,4C00H INT 21H CODE ENDS END START.4.26编写程序,输入N,计算:S=1×2+2×3+……+<N-1>×N.答: INCLUDE YLIB.HCODE SEGMENT ASSUME CS:CODE MESS1 DB 0DH,0AH,‘InputNplease:$’MESS2 DB 0DH,0AH,‘S=$’ START:PUSH CS POP DSLEA DX,MESS1CALL READDECMOV CX,AXXOR BX,BX ONE: MOV AX,CX MOV SI,AX DEC SI MUL SI ADD BX,AX LOOP ONELEA DX,MESS2 MOV AX,BX CALL WRITEDEC CALL CRLF MOV AX,4C00H INT 21H CODE ENDS END START.4.27编写程序,输入N,输出如下矩阵〔设N=5 11111 22221 33321 44321 54321.答:设I为行〔1~5,J为列〔1~5,则〔I,J位置上的数据为:I>〔6-J?I:6-J。INCLUDE YLIB.HCODE SEGMENT ASSUME CS:CODESTART:CALL CRLFMOV SI,1 ROW: MOV CX,5COL: CMP SI,CX JB UP DOWN: MOV AX,CX JMP OUTPUT UP: MOV AX,SI OUTPUT:MOV DX,-1 CALL WRITEDEC LOOP COL CALL CRLF INC SI CMP SI,5 JBE ROW MOV AX,4C00H INT 21H CODE ENDS END START.4.28

根据下面条件,画出每次调用子程序或返回时的堆栈状态。〔1主程序调用NEAR属性的SUB1子程序,返回的偏移地址为1200H.〔2进入SUB1后调用NEAR属性的SUB2子程序,返回的偏移地址为2200H.〔3进入SUB2后调用FAR属性的SUB3子程序,返回的段基址为4000H,偏移地

温馨提示

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

评论

0/150

提交评论