汇编语言程序设计期末考试试卷及参考答案
汇编语言程序设计期末考试-试卷及参考答案

汇编语言程序设计期末考试-试卷及参考答案【汇编语言程序设计】期末考试-试卷及参考答案执行上述两条指令后,正确的结果是( B )。
A.(AX)=1001H; B.(AX)=0FFFH;C.(AX)=1000H; D.(AX)=0111H。
6.串指令中的目的操作数地址一定是由____A_ _提供。
()A.ES:[DI] ; B.SS:[BP];C.DS:[SI] ; D.CS:[IP]。
7.将DX的内容除以2,正确的指令是( C )。
A.DIV 2 ;B.DIV DX,2 ;C.SAR DX,1;D.SHL DX,1。
8. 用户为了解决自己的问题,用汇编语言所编写的程序,称为( B )。
A.目标程序; B.汇编语言源程序;C.可执行程序; D.汇编程序。
9.用一条指令仅实现将AX←BX+SI的方法是( D )。
A.XCHG AX,[BX][SI] ;B.MOV AX,[BX+SI];C.LEA AX,BX[SI] ;D.LEA AX,[BX][SI]。
10.设SP初值为2000H,执行指令“PUSH AX”后,SP的值是( C )。
A.1FFFH; B.1998H;C.1FFEH; D.2002H。
2. C二、指出下列指令的出错原因,并改正。
(每小题2分,共12分)1.MOV BX,DL;操作数类型不匹配,改正为:MOV BL,DL 或MOV BX,DX2.MOV CS,AX;代码段寄存器CS不能作目的操作数,改正为MOV DS,AX3.ADD AX,DS;段寄存器DS的内容不能作为加法指令的操作数,改正为MOV BX,DSADD AX,BX4.TEST BX,[CX];不能使用CX实现寄存器间接寻址,改正为MOV SI,CXTEST BX,[SI]5.SUB [BX],[BP+SI];两个操作数不能同为存储器操作数,且两个操作数的数据类型不确定,改正为:MOV AX,[BX]SUB AX,[BP+SI]或:MOV AL,[BX]SUB AL,[BP+SI]6.SHL DX ;没有给出移位次数,改正为SHL DX,1或 SHL DX,CL三、程序填空题(注意:每空只能填一条指令,并注释说明所填指令的作用!每空3分,共18分)1.在表TABLE处存放着N个无符号字节数,求表中前10个字节数的总和并保存在AX寄存器中。
汇编语言程序的设计试卷与答案

汇编语言程序设计试卷一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20分)1.十六进制数88H,可表示成下面几种形式,请找出错误的表示()。
① 无符号十进制数136② 带符号十进制数-120③ 压缩型BCD码十进制数88④ 8位二进制数-8的补码表示2.指令指针寄存器是()。
① IP② SP③ BP④ PSW3.当执行指令ADD AX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是()。
① 表示结果中含1的个数为偶数② 表示结果中含1的个数为奇数③ 表示该数为偶数④ 表示结果中低八位含1的个数为偶数4.完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是()。
① MOV AL,00H② AND AL,00H③ XOR AL,AL④ SUB AL,AL5.下列指令执行后总是使CF=0,OF=0的是()。
① AND② NEG③ NOT④ INC6.完成同指令XCHG AX,BX相同功能的指令或指令序列是()。
① MOV AX,BX② MOV BX,AX③ PUSH AXPOP BX④ MOV CX,AXMOV AX,BXMOV BX,CX7.设AH=0,AL=06H,BL=09H,执行指令ADD AL,BLAAA之后,其结果应是()。
① AH=01,AL=05② AH=1 AL=15③ AH=0 AL=0FH④ AH=0 AL=058.设AL=0B4H,BL=11H,指令“MUL BL”和指令“IMUL BL”分别执行后OF,CF的值为① OF=1,CF=0② OF=1,CF=1③ OF=0,CF=0④ OF=0,CF=19.在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是()。
① CX=0且ZF=0② CX=0且ZF=1③ CX=0或ZF=0④ CX=0或ZF=110.下面指令中,合理而有意义的指令是()。
《汇编语言程序设计》期末复习题和答案.doc

《汇编语言程序设计》期末复习题及答案一、选择(30题)1.下列是8位带符号二进制数的补码,其中最大的是(B )。
B、000000012.在一段汇编语言程序中多次调用另一段程序,用宏指令比用子程序实现(C )C、占内存空间大,但速度快3.数据定义为:EE DB 3, 4CC DW 3456H, 6789H执行指令“MOV CX, WORD PTR EE+1” 后,(CX) = ( B )B、5604H4.有如下指令序列:MOV AL, 95HMOV CL, 2SAR AL, CL上述指令序列执行后,AL的内容是(D )D、0E5H5.设A=186m B=273R,C=0BB E把这三个数看成无符号数,则它们之间的关系是(D )D、A<B=C6.用一条指令实现寄存器BX和SI的内容相加,并将结果送入AX中,这条指令是(D )D、LEA AX, [BX] [SI]7.要从端口1234H中读入8位数据,其指令应是(C )C、MOV DX, 1234HIN AL, DX8.循环控制指令LOOPNZ/LOOPNE继续执行循环的条件是(B )B、CX尹。
且ZF=O9.8088/8086存储器分段,每个段不超过(D )D、64K个字节10.表示过程定义结束的伪指令是(A )A、ENDP11.用来存放下一条将要执行的指令代码段地址的段寄存器是(D )D、CS12.假定(SS) =1000H, (SP) =0100H, (AX) =5609H,执行指令PUSH AX 后,存放数据56H的物理地址是(D )D、100FFH13.执行“SUB AX, [BP] [DI] ”指令,取源操作数时,使用的物理地址表达式是(A )A、16*SS+BP+DI14.设AX中有一带符号数8520H,执行“SA R AX, 1”指令后,AX中的值是(C )C、0C290H15.设(BX) =1234H, (DS) =2000H, (21234H) =5678H,则指令“LEA SI, [BX] ” 执行后的结果是:(B )B、SI=1234H16.测试BL中的数是否为负数,若为负数则转移至AA1处,横线处的指令应为(A )A、JNE17.设DF=O, (SI) =20H, (CX) =10,执行“REP LODSW"指令后,SI 中的内容是(C )C、34H18.在程序执行过程中,IP寄存器中始终保存的是(B )B、下一条指令的首地址19.设SP初值为2000H,执行指令“POP AX”后,SP的值是(A )A、2002H20.若AX=3500H, CX=56B8H,当AND AX, CX 指令执行后,AX= ( A )A、1400H21.汇编源程序时,出现语法错误的语句是(A )A、MOV DS, 1200H22.将数据1234H存放在存储单元中的伪指令是(C )C、DATA1 DB 34H, 12H23.下面指令执行后,可能改变AL寄存器内容的指令是(D )D、AND AL, BL24.操作数地址存放在寄存器的寻址方式称为(B )B、寄存器间接寻址25.用户为了解决自己的问题,用汇编语言所编写的程序,称为(B )B、汇编语言程序26.用DOS功能调用时,子功能调用的编号应放在(C )C、AH27.提供串指令中目的操作数地址的是(C )C、ES: [DI]28.在寄存器间接寻址方式下,能够提供有效地址的寄存器有(B )B、BX, BP, SI, DI29.已知某操作数的物理地址是2117AH,则它的段地址和偏移地址可能是(A )A、2025 : 0F2A30.中断向量表中的每个中断向量所占内存空间为:(B )B、4个字节二、填空(30题)1.在用直接寻址方式寻址操作数时,系统对段地址的默认值在段寄存器DS 中。
计算机组成原理与汇编语言程序设计期末试题ABC三卷及答案

《计算机组成原理与汇编语言》课程试题A卷一、填空题(每空格1 分共 28 分)1.8位二进制补码所能表示的十进制整数范围是()至(),前者的二进制补码表示为(),后者的二进制补码表示为()。
2.每条指令由两部分组成,即()部分和()部分。
3.微程序顺序控制常用的两种方式是()方式和()方式。
4.8086CPU从结构上可以分为()单元和()单元。
5.半导体动态RAM靠()原理存贮信息,而半导体静态RAM靠()原理存贮息。
6.已知字符A的ASCII码为(),则字符B的ASCII码为(),字符D的ASCII码为()。
7.8086CPU具有()根地址线,直接寻址能力可达()。
8.运算器的主要功能是进行()。
9.通常I/O控制方式可分为5种,即()方式、()方式、和()方式、()方式、()方式。
10.一个源程序中可以包含代码段、()段及()段。
其中代码段是源程序中必不可少的,其它两个段可有可无。
11.标号和变量所具有的三种属性分别为()、()和()属性。
二、判断题(每小题3分共24)12.()在数字计算机中所以采用二进制是因为二进制的运算最简单。
13.()计算机表示的数发生溢出的根本原因是计算机的字长有限。
14.()表示定点数时,若要求数值0在计算机中唯一地表示为全0,应采用补码。
15.()CRC校验码的生成和检验大多采用软件实现。
16.()外(辅)存比主存的存储容量大、存取速度快。
17.()动态RAM和静态RAM都是易失性半导体存储器。
18.()Cache的功能全部由硬件实现。
19.()LCD显示器没有背景光源也能工作。
三、单项选择题:(每小题 3分,共 30 分)20.主机、外设不能并行工作的方式()。
A.程序查询方式 B.中断方式 C.通道方式21.在单独(独立)编址下,下面的说法是()是对的。
A.一个具体地址只能对应输入输出设备B.一个具体地址只能对应内存单元C.一个具体地址既可对应输入输出设备,也可对应内存单元D.只对应内存单元或只对应I/O设备22.在关中断状态,不可响应的中断是()。
汇编语言期末考试试题及答案

汇编语言期末考试试题及答案精品文档汇编语言模拟试题及答案一,单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20分)1.指令JMPFARPTRDONE属于参考答案为:CA.段内转移直接寻址B.段内转移间接寻址C.段间转移直接寻址D.段间转移间接寻址[解析]略2.下列叙述正确的是参考答案为:CA.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS 指令B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP指令C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL指令D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JNB指令[解析]对于无符号数和有符号数的比较都采用CMP指令;CMPS指令是串比较指令;对两个无符号数的条件转移指令应是:JAE、JNB、JBE、JNA;对两个有符号数的条件转移指令应是:JGE、JNL、JLE、JNG。
3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是参考答案为:C A.12CSBHB.12B6BHC.12C59HD.12BFEH[解析]末字与首字相隔(128-1=)127个字,且每个字占用2个字节,因此末字单元的物理地址应为:首字单元的物理地址+(128-1)×2即12ABH×10H+00ABH+(128-1)×2=12C59H。
4.在下列指令的表示中,不正确的是参考答案为:CA.MOVAL,[BX+SI]B.JMPSHORTDONIC.DEC[BX]D.MULCL[解析]当只有一个存储器操作数时,这个操作数的类型不明确,例如选项C 中的[BX],没有明确的说明访问该存储单元的类型,此时存储器操作数就必须需用类型说明,如DECBYTEPTR[BX]或DECWORDPTR[BX]但是在题目的选项C中,没有指出存储器操作数类型,所以该指令是不正确的;而其它选项中的指令均是正确的。
2022年汇编语言程序设计期末考试题

2022年汇编语言程序设计期末考试题一、单项选择题(本大题共10小题,每小题3分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.CPU要访问的某一存储单元的实际地址称(C)A.段地址B.偏移地址C.物理地址D.逻辑地址2.某存储单元的物理地址是12345H,可以作为它的段地址有(D)A.2345HB.12345HC.12340HD.1234H3.执行后使B某=0的同时也使CF=0,OF=0的指令是(A)A.某ORB某,B某B.ORB某,B某C.ANDB某,B某D.CMPB某,B某4.循环控制指令LoopNZ/LoopNE控制循环继续执行的条件是(B)A.C某≠0且ZF=1B.C某≠0且ZF=0C.C某≠0或ZF=1D.C某≠0或ZF=05.在执行DAA指令,当高四位BCD码校正时产生进位,如要把此进位值送入AH中,对这进位值的操作应是(C)A.DAA校正指令的功能已自动加在AH中B.进位值在AF中,校正后根据AF内容再加在AH中C.进位值在CF中,校正后根据CF内容再加在AH中D.进位值在AL最高位上,校正后根据AL最高位内容再加在AH中6.AND,OR,某OR,NOT为四条逻辑运算指令,下面的解释正确的是(C)A.指令某ORA某,A某执行后,A某内容不变,但设置了标志位B.指令ORD某,1000H执行后,将D某最高位置1,其余各位置0C.指令ANDA某,OFH执行后,分离出AL低四位D.NOTA某,执行后,将A某清07.在执行下列指令时,需要使用段寄存器DS的指令是(D)A.STOSWB.ADDAL,CLC.NEGB某D.INCDA[B某]8.无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指令是(B)A.ADDBH,01HB.ORBH,01HC.某ORBH,01HD.TESTBH,01H9.比较两个带符号的数A、B,当A=B时程序转移,测试的条件为(A)A.ZF=1B.ZF=0C.SF=1D.SF=010.下面各传送指令中,正确的是(C)12.要实现使BETA的值为56,应采用语句为(C)A.BETADB56B.BETADB56HC.BETAEQU56D.BETAEQU56H13.REPZCMPSW指令,重复执行的终止条件是(A)A.C某=0或ZF=0B.C某=0且ZF=0C.C某=0或ZF=1D.C某=0且ZF=1214.下面程序段执行后,AL中的内容是(B)MOVA某,8833HADDAL,AHDAAA.21B.21HC.0C1HD.0DDH15.比较两个带符号的数A、B,当A=B时程序转移,测试的条件为(A)A.ZF=1B.ZF=0C.SF=1D.SF=016.检查二个无符号数的关系,若要实现AL≥BL时分支去LOP1处,那么在“CMPAL,BL”指令后应跟的分支指令是(C)A.JNCLOP1B.JALOP1C.JCLOP1D.JGELOP117.在下列串操作指令中,同时使用源串和目的串地址指针的指令是(D)A.STOSWB.LODSWC.SCASWD.CMPSW18.设AL=0AH,下列指令执行后能使AL=05H的是(C)A.NOTALB.ANDAL,0FHC.某ORAL,0FHD.ORAL,0FH19.DA1DWAB,CD,EF,GH(D)┇MOVA某,DA1+3指令执行后A某中的内容是A.EFB.CDC.BCD.FC20.使用DOS系统功能调用时,使用的软中断指令是(B)A.INT21B.INT10HC.NT16HD.INT21H3二、简答题(每题10分,共30分)1.简述循环程序常用的控制方法。
【汇编语言程序设计】期末考试-试卷及参考答案

JC?EXIT
DONE:INC?BX
(3)LOOPNEXT;将计数器 CX 减 1,并判断是否继续下一次循环
EXIT:HLT
2.BUFFER 为起始地址的存储区域中存放有 100 个字节数据,现将其首、尾颠倒过来, 重新排放这 100 个字节数据。请在程序中的空格处填入适当的指令使其完整。 MOV?CX,32H;循环 50 次
letterDB26DUP(?) countEQU$-letter
dataENDS codeSEGMENT ASSUMEcs:code,da:data start:movax,data
movds,ax movcx,count leasi,letter moval,‘A’ next:mov[si],al
movah,9;9 号功能调用显示提示信息
int21h
汇编语言期末试卷及答案

汇编语言期末试卷及答案一、单项选择题1、CPU发出的访问存储器的地址是(A)。
A.物理地址B.偏移地址C.逻辑地址D.段地址2、下列指令中操作数在代码段中的是(A)。
A.MOV AL,42HB.ADD AL,BLC.SUB [BX],DID.INC [DI]3、与MOV BX,OFFSET VAR指令完全等效的指令是(D)。
A.MOV BX,VARB.LDS BX,VARC.LES BX,VARD.LEA BX,VAR4、表示过程定义结束的伪指令是(A)。
A.ENDPB.ENDSC.ENDD.ENDM5、BUF1 DB 3 DUP(0,2 DUP(1,2),3)COUNT EQU $ - BUF1符号COUNT等价的值是(B )。
A.6B.18C.16D.86、下列寄存器中,作为16位寄存器的是(D)。
A. ALB. BLC. CHD.DX7、在程序运行过程中,确定下一条指令的物理地址的计算表达式是(C)。
A.DS*16+SIB. ES*16+DIC. CS*16+IPD. SS*16+SP8、物理地址(10FF0H )=10H,(10FF1H )=20H,(10FF2H )=30H,从地址10FF1H中取一个字的内容是(B)。
A.1020HB.3020HC.2030HD.2010H9、将AX 清零,下列指令错误的是(C)。
A.SUB AX,AXB.XOR AX,AXC.OR AX,00HD.AND AX,00H10、完成同指令XCHG AX,BX相同功能的指令或指令序列是(D)。
A. MOV AX,BXB. MOV BX,AXC. PUSH AXD. MOV CX,AXPOP BX MOV AX,BXMOV BX,CX11、JMP BX 的目标地址的偏移量为(A)。
A. BX 的内容B. BX 所指向的内存单元的内容C. IP + BX 的内容D. IP + [BX]12、可用作寄存器间接寻址或基址、变址寻址的地址寄存器,正确的是(D)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【汇编语言程序设计】期末考试-试卷及参考答案执行上述两条指令后,正确的结果是( B )。
A.(AX)=1001H; B.(AX)=0FFFH;C.(AX)=1000H; D.(AX)=0111H。
6.串指令中的目的操作数地址一定是由____A_ _提供。
()A.ES:[DI] ; B.SS:[BP];C.DS:[SI] ; D.CS:[IP]。
7.将DX的内容除以2,正确的指令是( C )。
A.DIV? 2 ;B.DIV ? DX,2 ;C.SAR? DX,1;D.SHL? DX,1。
8. 用户为了解决自己的问题,用汇编语言所编写的程序,称为( B )。
A.目标程序; B.汇编语言源程序;C.可执行程序; D.汇编程序。
9.用一条指令仅实现将AX←BX+SI的方法是( D )。
A.XCHG AX,[BX][SI] ;B.MOV AX,[BX+SI];C.LEA AX,BX[SI] ;D.LEA AX,[BX][SI]。
10.设SP初值为2000H,执行指令“PUSH AX”后,SP的值是( C )。
A.1FFFH; B.1998H;C.1FFEH; D.2002H。
1.A2. C3.A4.D5.B6.A7.C8.B9.D 10.C二、指出下列指令的出错原因,并改正。
(每小题2分,共12分)1.MOV BX,DL;操作数类型不匹配,改正为:MOV BL,DL 或MOV BX,DX 2.MOV CS,AX;代码段寄存器CS不能作目的操作数,改正为MOV DS,AX 3.ADD AX,DS;段寄存器DS的内容不能作为加法指令的操作数,改正为MOV BX,DSADD AX,BX4.TEST BX,[CX];不能使用CX实现寄存器间接寻址,改正为MOV SI,CXTEST BX,[SI]5.SUB [BX],[BP+SI];两个操作数不能同为存储器操作数,且两个操作数的数据类型不确定,改正为:MOV AX,[BX]SUB AX,[BP+SI]或:MOV AL,[BX]SUB AL,[BP+SI]6.SHL DX ;没有给出移位次数,改正为SHL DX,1或 SHL DX,CL 三、程序填空题(注意:每空只能填一条指令,并注释说明所填指令的作用!每空3分,共18分)1.在表TABLE处存放着N个无符号字节数,求表中前10个字节数的总和并保存在AX寄存器中。
如果总和值超过AX寄存器的容量,则置AX寄存器内容不变。
请在程序中的空格处填入适当指令使其完整。
LEA? BX,TABLE?MOV? CX,10?MOV? SUM,AX ;将AX的原值保存在SUM单元中MOV AL,00HMEXT:(1)ADD AL,[BX] ;实现将表TABLE中的数据按字节累加到AL 中ADC? AH,0?JNC? DONE(2)MOV?AX,SUM ;总和值超过AX寄存器的容量,恢复AX的原值JC? EXITDONE:INC?BX(3)LOOP NEXT ;将计数器CX减1,并判断是否继续下一次循环EXIT:HLT2.BUFFER为起始地址的存储区域中存放有100个字节数据,现将其首、尾颠倒过来,重新排放这100个字节数据。
请在程序中的空格处填入适当的指令使其完整。
MOV? CX,32H ;循环50次LEA? SI,BUFFERMOV? DI,SI(1) ADD DI,99 ;DI指向最后一个字节数据的存储单元的偏移地址NEXT:MOV? AL,[SI](2) XCHG AL,[DI];交换SI和DI所指向单元的内容MOV? [SI],AL(3) INC SI ;使指针SI加1,指向下一个字节的数据DEC? DILOOP?NEXTHLT四、程序分析题(每小题4分,共20分)1.设(AX)= X,X是无符号数且0≤X< 6000,分析下面程序段,回答问题; SHL AX,1 ;实现X乘2MOV BX,AXSHL AX,1SHL AX,1ADD AX,BX(1)该程序段的功能是什么?实现无符号数X乘10,结果存放在AX寄存器中。
——2分(2)该程序段执行完后,(AX)= 10X ,(BX)= 2X 。
——2分2.现有一子程序段:SUB1? PROCTEST?AL,80HJE?PLUSTEST?BL,80HJNE?EXITOJMP?XCHANGEPLUS: TEST?BL,80HJE?EXITOXCHANGE:XCHG?AL,BLEXITO: RETSUB1? ENDP试回答:(1)子程序的功能是什么?答:子程序的功能是判别AL和BL中的数是否为异号数,当为异号时交换,否则不变。
(2)若调用子程序前(AL)=9AH,(BL)=77H,则返回主程序时,(AL)=__77H____,(BL)=_9AH__。
3.现有如下程序段:DATA? SEGMENT?ORG? 0020H?DA1? DW?12H,23H?DA2? DB?11H,21H?DA3? DB?31H,32HDA4? EQU? $-DA3DA5? EQU? 1234H 请回答:(1)该程序段占有的存储单元字节数是多少?画出所分配的存储区的示意图.答:8个字节,0020H 12H DA100H23H000024H 11H DA2DATA?ENDS4.阅读如下程序:ADRR? DB? XXH,XXH,……,XXH;定义的字节数组元素NUM? EQU?$-ADRRRET_VLAUE?DW ?…?MOV?CX,NUMMOV?BX,-1NEXT: INC?BXCMP?ADRR[BX],0LOOPNZ?NEXTJZ?DONEMOV?BX,OFFHDONE: MOV?RET_VLAUE,BXHLT请问:(1)该程序完成的功能是什么?功能:在以ADRR为起始地址的数组中,查找第一个是0的数据。
(2)程序执行后指出RET_VLAUE单元中的内容是什么?若找到,则将第一个是0的数据在数组中的偏移量送入RET_VLAUE单元中;若无0数据,则将0FFH送入RET_VLAUE单元中。
5.阅读如下程序段,回答所提出的问题,假定X1,X2,…,XN为无符号数。
ORG?100HBLOCK? DW?X1,X2,…,XNCOUNT? EQU ($-BLOCK)/2 RESULT?DW? COUNT,?LEA?BX,BLOCK-2MOV?CX,RESULTXOR?AX,AXGO_ON:ADD?BX,2CMP?AX,[BX]JAE?NEXTMOV?AX,[BX]NEXT: LOOP?GO_ONMOV?RESULT+2,AX程序段执行完,回答下述问题:RESULT+2字存储单元的内容= MAX(X1,X2,…,XN);BX = 100H?+?2×(COUNT-1) ;程序循环次数 = COUNT 。
五、编写程序(30分)1.编写一程序,在letter 为首地址的26个单元中依此存放字母‘A ’、‘B ’、……‘Z ’。
(本小题8分)data SEGMENTletter DB 26 DUP(?)count EQU $-letter data ENDS code SEGMENTASSUME cs:code,da:data start: mov ax,data mov ds,ax mov cx,count lea si,letter mov al,‘A ’ next: mov [si],al inc al inc si loop next mov ah,4ch int 21h code endsend start2.以Buffer 为首地址的存储区,存放有长度为N 有符号字数组,编写一程序求出其中负数的平均值(所有负数的和>-32768),并存放在M_average 单元中。
(本小题10分)data SEGMENTBuffer DW XXXX,XXXX,……,XXXX ;N 个字 count EQU ($-Buffer )/2 M_average dw ? data ENDS code SEGMENTASSUME cs:code,da:data start: mov ax,datamov ds,axmov cx,countlea si, Bufferxor ax,ax ;存负数的和mov bx,ax ;存负数的个数next: test word ptr [si],8000Hje go_on add ax,[si] inc bx 得分 评阅人 cwd idiv bx mov M_average,ax ;存负数的平均值 mov ah,4chint 21hdata endsend startgo_on: add si,2loop next3.从键盘接收一串不多于99个字符的字符串,对其进行分类统计,显示其中数字字符个数、大写英文字母个数、小写英文字母个数、以及其他字符的个数。
要求使用子程序结构;数字字符的ASCII码为30H……39H、大写英文字母的ASCII码为41H……5AH、小写英文字母的ASCII码为61H……7AH。
(本小题12分)data SEGMENTMSG DB 0DH,0AH,‘输入一串字符:$’MSG1 DB 0DH,0AH,‘大写字母个数:$’MSG2 DB 0DH,0AH,‘小写字母个数:$’MSG3 DB 0DH,0AH,‘数字符号个数:$’MSG4 DB 0DH,0AH,‘其它符号个数:$’BUFFER DB 99DB 0DB 99 DUP(?)BIG DB 0 ;大写字母个数LITTLE DB 0 ;小写字母个数DIG DB 0 ;数字符号个数OTHER DB 0 ;其它符号个数data ENDScode SEGMENTASSUME cs:code,da:datastart: mov ax,datamov ds,axlea dx,MSGmov ah,9 ;9号功能调用显示提示信息int 21hlea dx,BUFFERmov ah,10 ;10号功能调用从键盘接收一串字符int 21hmov cl,BUFFER+1;实际从键盘接收字符个数mov ch,0lea si,BUFFER+2again: cmp byte ptr [si],30Hjb otherscmp byte ptr [si],39Hjbe digitalscmp byte ptr [si],41Hjb otherscmp byte ptr [si],5AHjbe bigscmp byte ptr [si],61Hjb otherscmp byte ptr [si],7AHjbe littlesothers: inc OTHERjmp okdigitals:inc DIGjmp oklittles: inc LITTLEjmp okbigs: inc BIGok: inc siloop againlea dx,MSG1mov bh,BIGcall dispdeclea dx, MSG2mov bh,LITTLEcall dispdeclea dx, MSG3mov bh,DIGcall dispdeclea dx, MSG4mov bh, OTHERcall dispdecmov ah,4chint 21h;DX待显示数据说明,BH待显示数据<100 dispdec PROCmov ah,9int 21hmov al,bhxor ah,ahaammov dl,ahmov dh,aladd dl,30Hmov ah,2int 21Hmov dl,dhadd dl,30H mov ah,2 int 21Hret dispdec ENDPcode ENDSend start。