汇编复习题2014c.doc_第1页
汇编复习题2014c.doc_第2页
汇编复习题2014c.doc_第3页
汇编复习题2014c.doc_第4页
汇编复习题2014c.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

汇编语言程序设计复习资料2014一、 选择题1、汇编语言源程序经汇编后不能直接生成 C 。A .OBJ文件B .LST文件C .EXE文件D .CRF文件2、若SP=1500H,那么执行完PUSH指令后,SP= B 。A.14FFH B.14FEHC. 1502HD.1501H3、JMP WORD PTR DI是 A 。A.段内间接转移B.段间间接转移C.段内直接转移D.段间直接转移4、与MOV SI,OFFSET X等价的指令是 C 。A.MOV SI,X B.LES SI,XC. LEA SI,XD. LDS SI,X5、运算型指令的寻址和转移型指令的寻址,其不同点在于 A 。A.前者取操作数,后者决定程序的转移地址B.后者取操作数,前者决定程序的转移地址C.两者都是取操作数D.两者都是决定程序的转移地址6、下列指令 D 是合法的访问I/O端口指令。A. IN AL,100HB.IN AL,BXC. IN AL,BLD. IN AL,DX7、逻辑移位指令SHL用于 C ;A.带符号数乘2 B.带符号数除2C.无符号数乘2D.无符号数除2而算术移位指令SAL用于 A 。A.带符号数乘2 B.带符号数除2C.无符号数乘2D.无符号数除28、由汇编程序在汇编过程中执行的指令是 B A.机器语言B.伪指令 C.状态标志D.物理地址9、在汇编语言程序设计中,伪指令OFFSET的含义是回送变量或标号的 B A.段地址B.物理地址C.偏移地址D.操作数10、子程序返回伪指令是 C 。A. ENDPB. IRETC.RETD. 段内与段间不同11、使用LINK连接命令,执行后可生成文件的扩展名为 C 。A. .COM B. .OBJ C. .EXE D. .LST 12、已知AX的内容为1FFAH,执行XOR AX,AX,AX内容为 C 。A.00FAH B.1FFAHC. 0000HD.1F00H13、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令是 D 。A. CMP B.SUB C. AND D.MOV14、INC指令不影响 B 标志。A. OFB.CFC.SFD.ZF 15、段内直接调用,程序的转移范围为 B 。A. -128127B. -3276832767C.-65536 65535D. 03276716、中断向量 D 。A.传送数据的起始地址B.中断类型号C.子程序入口地址D.中断服务程序入口地址17、执行返回指令,退出中断服务程序,这时返回地址来自 C 。A.ROM区B.程序计数器C.堆栈区D.CPU的暂存寄存器18、微机系统中有哪些总线? D A.状态总线、数据总线、控制总线 B.地址总线、状态总线、控制总线C.状态总线、数据总线、地址总线 D.数据总线、地址总线、控制总线19、以下不属于总线接口部件BIU部件的是 A 。A.通用寄存器B.地址产生器C.指针寄存器D.专用寄存器20、不能将累加器AX的内容清0的错误指令是 B 。A.ANDAX,0B.CMPAX,AXC.SUBAX,AXD.XORAX,AX 21、有如下程序段:MOV CX,6MOV AX,1 MOV BX,3LOP: ADD AX,BX ADD BX,2LOOP LOP上述指令完成后,AX= B A. 6B. 49C.50D. 022、由汇编程序在汇编过程中执行的指令是 D 。A.物理地址B.机器语言 C.指令D.伪指令23、从键盘输入数据1,则在寄存器中存放的形式为 A 。A. 31H B. 01H C.”1” D. 124、下列有关段地址、偏移地址、物理地址的叙述正确的是 D 。A.若已知物理地址,则可以计算出唯一的段地址和偏移地址。B.段的划分可以从任何一个存储单元开始。C.8086规定段的大小必须为64K字节。D.多个段可以共用某些存储单元。25、中断发生过程和子程序调用过程的一个明显区别是中断发生时,CPU自动清除了 A 。A. IF和TF位 B. TF位 C.IF和SF位 D. TF和SF位26、执行下列指令后:MOV AX,1234HMOV CL,4ROL AX,CLDEC AXMOV CX,4MUL CXHLT寄存器AH的值是 C , A.92HB.8CHC.8DHD.00H寄存器AL的值是 B 。A.60HB.00HC.04HD.0A0H27、在多模块程序设计中,用 B 伪指令来声明公用变量。A.EXTRN B.PUBLIC C.MODULED.COMMON 28、交换寄存器SI、DI的内容,正确的程序段是 A 。A.PUSH SIB.PUSH SIPUSH DI PUSH DIPOP SI POP DIPOP DI POP SIC.MOV AX,SID.MOV AX,SIMOV SI,DI MOV BX,DIMOV DI,AX XCHG BX,AX 29、8086/8088响应中断时,不自动压入堆栈的有 B 。A CS的内容B通用寄存器的内容C IP的内容D标志寄存器的内容30、堆栈的工作方式是 A 。A.先进后出 B.后进后出 C.先进先出D.先进不出31、求下面变量定义的元素个数送CX的正确形式是 D 。ARRAY DW 1,9,9,9,12,1A.MOV CX,LENGTH ARRAY B. MOV CX,SIZE ARRAYC.COUNT EQU $-ARRAY D. COUNT EQU ($-ARRAY)/2MOV CX,COUNT MOV CX,COUNT 32、可屏蔽中断就是它的请求是否被CPU响应要受 B 位的控制。A. TF B. IF C.OF D. SF33、影响堆栈指针SP的指令是 B 。A.INT 21H B.JMP DOC.RETD.PUSH AX34、8088/8086存储器分段,每个段不超过 A 。A64K个字B32K个字节C1兆个字节D64K个字节35、汇编语言是 A 。A.低级语言 B.中级语言 C.高级语言 D.机器语言36、用DEBUG.EXE调试程序时,显示存储单元内容的命令是 D 。A.RB.T C. GD. D37、汇编源程序中,END伪指令后的标号表示 C 。A.源程序的结束B.代码段的结束C.汇编程序的入口地址D.该标号无任何意义38、有如下数据定义:X DB 36H,6FHY DW 2E5DH,4F6FH则下列指令正确的是 C 。A MOV AX,X BMOV DL,OFFSET XC MOV AX,WORD PTR X DMOV BL,Y39、若要求一个操作数中的若干位维持不变,若干位置1,可以使用 B A NOTB ORC ANDD XOR不40、下列指令中,源操作数在代码段中的是 A 。A.MOV AL,80HB. ADD AL,BL C.CMP AX, 1234D.AND AL,ES:123441、对于有符号的数来说,下列哪个值最大 D 。A 0F8HB 11010011BC 82D 123Q二、填空题1、指出下列指令源操作数的寻址方式: MOV AX,ARRAYSI;寄存器相对寻址方式 MOV AX,ES:BX;寄存器间接寻址方式 MOV AX,200H ;直接寻址方式 MOV AX,BX+DI;基址变址寻址方式 MOV AX,BX;寄存器寻址方式 MOV AX,1200H;立即寻址方式 MOV AX,20BX+SI;相对基址变址寻址方式 MOV AX,DI+20;寄存器相对寻址方式2、计算机中的指令由 操作码 和 操作数 两部分组成。 3、对于乘法、除法指令,结果存放在 AX 或 DX:AX 中,而其源操作数可以用除 立即数 以外的任一种寻址方式。4、逻辑地址是由段地址和 偏移地址 组成,其中段地址是由 段寄存器 存储的。5、当指令“SUB AX,BX”执行后,CF=1,说明最高有效位向高位无进位或有借位;对无符号数数,说明操作结果溢出。6、I/O设备的接口中一般包含数据、状态、控制三种端口。7、10110101.01B= H和 D。8、指令“AND AX,STR1 AND STR2”中,STR1和STR2是两个已赋值的变量,两个AND的区别是第一个AND是逻辑与指令、第二个AND是逻辑与操作符。9、带符号的机器数可以用 原码 、 反码 和 补码 三种不同码制来表示。11、如果TABLE为数据段中0032单元的符号名,其中存放的内容为1234H,当执行指令MOV AX,TABLE后,(AX)= 1234H ;而执行指令LEA AX,TABLE后,则(AX)= 0032H 。12、计算机的硬件的基本组成有运算器、控制器、存储器和输入设备、输出设备五大部件。13、近过程(NEAR)的RET指令把当前栈顶的一个字弹出到 IP ;远过程(FAR)的RET指令弹出一个字到 IP 后又弹出一个字到CS ;IRET指令是中断返回指令,它从堆栈顺序弹出3个字分别送到IP 、CS 、标志寄存器FLAGS 中。14、ENDP 是过程定义结束伪指令,与PROC 配套使用。ENDS是段定义结束伪指令,与SEGMENT 配套使用。END 是一个源模块汇编结束伪指令。15、一个有16个字的数据区,它的起始地址为70A0:DDF6,那么该数据区首字单元地址是7E7F6H,最后一个字单元的物理地址为7E814H 。(16个字就是70A0H*10H+DDF6H+1EH,如果是32个字的话,则是70A0H*10H+DDF6H+3EH=7E834H)16、执行下列指令序列后,完成的功能是将(DX,AX)的值左移4位。 MOV CL,04SHL DX,CLMOV BL,AHSHL AX,CLSHR BL,CLOR DL,BL17、JMP按转移地址范围的不同,分为 短 跳转和 近 跳转。18、下面两个语句的区别在于 X1只能赋值一次 , X2可以多次赋值 。 X1 EQU 1000H X2=100019、用1条逻辑指令将AX中与BX中的对应位不相同的位均置为1 XOR AX,BX 。21、ASCII码是IBM-PC输入输出时采用的编码,ASCII的中文意思是美国信息交换标准代码,标准的ASCII码用8位二进制数来表示。22、用指令的助记符、符号地址、标号和伪指令、宏指令等书写的程序的语言称为汇编语言,将汇编语言的源程序翻译成机器语言的程序为汇编程序。23、8086CPU由BIU(总线接口单元)和EU(执行单元)两部分构成。24、我们把与内存一一对应的用20位二进制数(或5位16进制数)表示的地址称为物理地址,它的计算公式为物理地址=16*段地址+偏移地址。25、在段加偏移地址的寻址中,如果段寄存器为CS,则相应的偏移地址应由IP寄存器来提供。26、在DEBUG上机调试程序时,存储器的地址表示为2F00:1400,则该单元的段地址为2F00H,偏移地址为1400H,物理地址为30400H。28、方向标志DF的作用是用来在串操作指令中控制自增和自减的方向,用于设置或消除该标志位的指令是STD和CLD,。29、完成下列程序,从240H端口读取数据,测试其是否为20H,若不是则将241H端口清0,否则则转向Next。Movdx, 240H IN al,dxCMPal,20hJZNextMovdx,240hMoval,0Outdx,alNext:30、已知:(DS)=15F0H,(ES)=25F0H,(SS)=35F0H,(BX)=0670H,(SI)=1001H,(DI)=0B0H,(BP)=0150H,BUF的偏移地址是0900H。计算下列指令源操作数的物理地址,指出寻址方式:(1) MOV AX,BUFBP+6;采用寄存器相对寻址方式,物理地址为56956h 。(2) CMP AX,ES:SI;采用寄存器间接寻址方式,物理地址为 26F01H 。(3) MOV CX,BUF;采用直接寻址方式,物理地址为 16800H 。(4) MOV AX,ES:BX+SI;采用基址变址寻址方式,物理地址为 27571H 。(5) DEC BUFDI;采用寄存器相对寻址方式,物理地址为 168B0H 。(6) MOV AX,BUFBX+DI;采用相对基址变址寻址方式,物理地址为 16620H 。31、过程的属性有NEAR和FAR 。32、指令中用来指出指令在程序中位置的符号地址是标号。33、变量和标号的三个属性为段属性、偏移属性、类型属性。34、下列程序段是比较AX,BX,CX中带符号数的大小,将最大数放在AX中。请将程序填完整。CMP AX,BXJGE LAB1XCHG AX,BXLAB1:CMP AX,CXJGE LAB2XCHG AX,CXLAB2:35、在使用串操作指令时,源串必须在数据段中,目的串必须在附加段中,源串作数和目的操作数不允许使用段超越。36、CPU是通过I/O指令来实现与外部设备进行数据传送的。37、内中断有三类中断源,分别为INT n、CPU出错、为调试程序设置的断点。38、中断过程可分为四个步骤:中断请求、中断响应、中断处理、中断返回。39、执行IRET指令时,会依次将IP、CS、FLAGS弹出栈。40、80X86中断命令寄存器的I/O端口地址为20H,中断屏蔽寄存器的I/O端口地址为21H。41、可用DOS功能调用INT 21H的功能号(AH)=25H来设置中断向量,用功能号AH=35H来获取中断向量。42、168D= 10101000 B= 0A8 H= 250 Q。43、在数据段中有以下定义: ARRAY1 EQU 16H ARRAY2 DW 16H 请指出下列指令的寻址方式: MOV AX,ARRAY1;立即寻址方式 MOV AX,ARRAY2;直接寻址方式44、若STR是字符串的首地址,将语句加上注解,并指出下列程序的功能。LEABX,STR; MOVCX,20; LAB1:CMPBX, *; JNZLAB2; MOVBX, $; LAB2:INCBXLOOPLAB1; HLT程序的功能;将首址为STR长度为20的字符串中的*用$替换。45、若物理地址为00038H的单元开始存放的双字为20001000H,00056H单元开始存放的双字为40003000H,则类型为14(十进制数)的中断向量的起始地址为38H或56,中断服务程序的入口地址(物理地址)为21000H。46、PC机I/O设备的数据传送方式共有三种,分别是查询,中断 ,DMA。47、当键盘中断发生时,CPU能否响应由两个条件控制,一是中断是否允许二是当前中断级别是否比键盘中断级别高。48、条件转移指令的目标地址应在本条件转移指令的下一条指令地址的-128127个字节范围内。49、假设某程序执行前(CS)0B234H,(IP)5678H,则该程序的第一条指令的物理地址是0B79B8H,若第一条指令对应的机器码占3个字节,则第二条指令的物理地址是0B79BBH。50、在用MASM 5.0的DEBUG调试程序时,查看寄存器内容的命令为 R ,让程序仅执行当前IP所指的一条指令的命令是 T 。三、 简答题1、试计算58H+3CH的运算结果,并写出标志位OF、PF、CF、SF的内容。2、8086具有哪些程序可见的寄存器,它们在程序设计中分别起什么作用?答:段寄存器8086的段寄存器有4个16位寄存器,它们用于存放8086CPU当前可以访问的4个逻辑段的基址。代码段寄存器CS划定并控制着程序区;数据段寄存器DS和附加段寄存器ES控制着数据区;而堆栈段寄存器SS对应着堆栈存储区。通用寄存器 通用寄存器可分为两组:数据寄存器,地址指针和变址寄存器。 数据寄存器包括AX,BX,CX和DX4个16位寄存器,它们中的每一个又可根据需要将高8位和低8位分成独立的两个寄存器来使用。 地址指针和变址寄存器包括SP,BP,SI,和DI。控制寄存器(1)指令指针IP(2)标志寄存器FLAG 8086CPU设立了一个16位标志寄存器,共9个标志。其中6个是状态标志,3个是控制标志。状态标志(a)CF进位标志(b)PF奇偶标志(c)AF辅助进位标志(d)ZF零标志(e)SF符号标志(f)OF溢出标志控制标志(a)DF方向标志(b)IF中断允许标志(c)TF陷阱标志或单步操作标志3、已知AX=0E87DH,BX=38ABH,若执行ADD BX,AX;则寄存器AX,BX,标志位CF、OF各为何值?4、什么是中断类型码?中断向量?中断向量表?在8086/8088微机系统中。中断类型码和中断向量之间有什么关系?答:中断类型码:其实就是中断号,对不同的中断服务程序不同的名称记号,以调用该中断程序.中断向量:指向中断服务程序的入口地址.一个向量代表的入口地址为4个字节.中断向量表:由于存在多个中断请求,相应有多个中断服务程序,即有多个存放这些程序的入口地址(即中断向量).为此系统在内存的特定区域安排一张中断向量表,专门存放所有的中断向量.此表即中断向量表.以上三者关系:中断向量=中断号X4, 其中方括号的含义是内存单元的内容.(即中断向量表刚好存放在内存绝对地址0开始的位置)。5、简述CPU响应中断的条件。答:取决于中断允许触发标志IF的状态。若IF=1,则响应中断的请求,暂停现行后续指令的执行,转去执行中断服务程序;若IF=0,则不会响应中断的请求。6、在8086/8088微处理器在实模式下,存储器寻址为什么要分段?举例说明存储单元的物理地址是如何形成的?答:在8086/8088中,寄存器只有16位,而地址线却有20位,故其最大寻址空间是1M。用存储器分段的方法,解决在16位字长的机器里提供20位地址的问题。在实模式下编程时,将存储器划分成段,每个段内的大小可达64KB,这样段内地址可用16位表示,实际上,可以根据需要决定段的大小。这样将每一段的起始地址作为段地址,而将在段内相对于段起始地址的偏移值作为偏移地址,于是将段地址左移4位,再加上偏移地址就形成了存储器实际的物理地址。如某存储单元的段地址和偏移地址为3017:000A,则其物理地址=3017H*10H+000AH=3017AH。7、逻辑右移指令SHR的格式、功能和使用说明?8、设AX=1234H,BX=5678H,CX=8901H,SI=100H,SP的初始值=01A0H,问执行下述堆栈操作指令序列 PUSHCXPUSHAX PUSHBXPOPCXPOPSI后,SP和SI的值等于多少?答:SP和SI的值分别等于19EH和1234H。9、计算机对I/O端口编址时可以采用哪两种方法?简述两种编址方式的优缺点?10、画图说明下列语句分配的存储空间及初始化数值。(1)ADB9,0AH, AB,2 dup(3,?)(2)BDW2 DUP(123H, 8),?,-5, 23,789DH(3)XDBBIT,62,6AH,2 DUP(0,?,2 DUP(7,9)(4)YDW2 DUP(0, 2),?,-5, CD,345H11、根据以下要求,分别写出相应的汇编语言指令或指令序列。(1)把AX寄存器和BX寄存器的内容相减,结果存入AX中。Sub ax,bx(2)将AX的内容逻辑左移5位。Mov cl,5 shl ax,cl(3)将AX的内容,减去0520H和上次运算的借位。Sbb ax,520h(4)将变量名TABLE的段地址送AX。Mov ax,seg table(5)将DI的高四位置为0。And di,0fffh(6)输出一个字节到61H号端口。Out 61h,al(7)将SI和DI的内容互换。Xchg si,di12、8086CPU是由EU和BIG组成,各部分的功能是什么?这样设计的优点是什么?答:BIU主要功能是负责CPU与主存和I/O之间的信息传递。EU的功能主要是控制和执行指令。取指和执行指令这两个步骤由两个独立的部件来完成。当EU执行某条指令时,BIU同时完成从主存中预取后继指令,两个部件并行工作,提高了指令的执行速度。13、循环控制指令LOOPNZ/LOOPNE的格式、功能和使用说明?14、串传送指令REP MOVSB的格式、功能和使用说明?15、简述指令MOV SI,DATA和MOV SI,OFFSET DATA之间的区别?答:MOV SI,DATA是将DATA的内容送入SI寄存器;MOV SI,OFFSET DATA是将SI寄存器指向DATA,也就是将DATA的偏移地址送入SI。16、强制属性操作符会改变变量的定义属性吗?答:不会,它们只是临时改变变量的属性。17、外设与CPU和存储器的通信是通过外设接口进行的,每个外设接口包含哪些寄存器,以及这些寄存器的用途?答:每个外设接口通常包含以下三种寄存器:一是用作数据缓冲的数据寄存器;二是用作保存设备和接口的状态信息,供CPU对外设进行测试的状态寄存器;三是用来保存CPU发出的命令以控制接口和设备的操作的命令控制寄存器。18、定义数据段DATA_SEG,数据段中的数据按下列要求依次存储:(1)第一个字节是整数5(2)变量BUF,大小为25个字节,初值为0(3)变量ARRAY,类型为字,初值为12H,56H,78H,0AH(4)变量MSG存储字符串yes答:data segments db 5 buf db 25 dup(0) array dw 12h,56h,78h,0ah msg db yesdata ends19、简述汇编语言从源程序的建立到运行可执行程序的主要步骤。答:用编辑程序建立汇ASM编语言源程序;用汇编语言对源程序进行汇编,把ASM文件转化成OBJ文件;用连接程序对目标文件进行连接,把OBJ文件转换成EXE文件;用DOS命令直接键入文件名即可执行。20、简述8086CPU的中断响应过程。答:取中断类型号N;标志寄存器内容入栈;当前代码段寄存器CS内容入栈;当前指令计数器IP入栈禁止硬件中断和单步中断(IF=0,TF=0);从中断向量表中取4N的字节内容送IP,取4N+2中的字节内容送CS;转中段处理程序。21、试计算逻辑地址4017:000A,4015:0002A和4010:0007A对应的物理地址。这三个物理地址说明了什么问题?四、判断题1、段内转移要改变IP、CS的值。 F 2、JMP SHORT lab是近跳转。 T 3、POP5678H ; F 4、立即寻址方式不能用于目的操作数。 T 5、条件转移指令只能使用段内直接短跳转。 T 6、MOVES,5678H ; F 7、不能给段寄存器进行立即数方式赋值。 T 8、立即寻址方式不能用于目的操作数。 T MOV DI,OFFSET BXSI。 T 9、LEA DI,BXSI;(T)10、MOV DI,OFFSET BXSI。 F 11、MOV指令会影响标志位。 F 12、ORAX,BX; T 13、CF位可以用来表示无符号数溢出,OF位可以用来表示有符号数溢出。 T 14、ADDCX,AL; F 15、LODSB指令执行的操作为:(DI)(AL),(DI)(DI)+1或(DI)(DI)-1。(F )16、关系操作符EQ、NE、LT、GT、LE、GE的计算结果为逻辑值,0FFFFH表示为真,0表示为假。 T 17、SHLAX,3; F 18、PUSH WORD PTR 20BX+SI-2; T 19、LEA BX,4BX; T 20、JMP BYTE PTR SI; F 21、INAX,0ADH; T 22、PUSH WORD PTR 20BX+SI-2; T 23、TESTAL,00000100B; T 24、RCRBX+SI,CX; F 25、DIV10H ; F 26、MOVAX,BXBP; F 27、INAX,3F0H; F )28、MUL0ABH; F 29、JLEFAR PTR LAB;LAB是一个语句的标号 F 30、CALLAX T 31、MOVDS,2000H F 32、立即寻址方式不能用于目的操作数。 T 33、指令INC BL影响所有的标志位 34、SP的内容可以不指向堆栈的栈顶。 F 35、END LAB语句指示本程序执行到标号LAB处则结束。 F 36、同一个文件中不允许出现相同的子程序名。 T 37、定义在代码段C中的类型属性为FAR的过程只能在代码段C之外调用。 F 38、ADDX,Y;X,Y是DB定义的变量。 F 39、对于一个正数,其原码、反码和补吗都一样。 T 40、SUBAX,1指令与DEC AX指令都执行(AX)=(AX)-1的操作,两者完全可以相互替代。 F 41、DIV SRC执行字节除法时,商存放在(AL)中,而余数存放在(AH)中。 T 42、ADDAX,1指令与INC AX指令都执行(AX)=(AX)+1的操作,两者完全可以相互替代。 F 43、ADD AX,ACH; F 44、PUSH5588H F 45、MOVDS,1720H F 46、ANDAX,DX F 47、ADDAX,CL F 五、编程题1、 从键盘输入一字符串,然后将其按反序存放并输出。DATA SEGMENT STRING1 DB 80,0,80 DUP(?) STRING2 DB 80 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA MAIN PROC FAR START: MOV AX,DATA MOV DS,AX MOV ES,AX LEA DX,STRING1 MOV AH,0AH INT 21H MOV CL,STRING1+1 SUB CH,CH LEA DI, STRING2 LEA SI,STRING1 ADD SI,CX INC SI LAB: MOV AL,SI MOV DI,AL INC DI DEC SI LOOP LAB MOV BYTE PTRDI,$ LEA DX,STRING2 MOV AH,9 INT 21H MOV AH,4CH INT 21H MAIN ENDP CODE ENDS END START2、将首地址为x的5个字正整数数组从小到大排序。DATA SEGMENTx DW 56H,85H,96H,52H,63HDATA ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DATASTART:PUSHDSSUBAX,AXPUSHAXMOVAX,DATAMOVDS,AX MOVCX,5 DECCXLOOP1:MOVDI,CXMOVBX,0LOOP2: MOVAX,XBXCMPAX,XBX+2 JLCON XCHGAX,XBX+2 MOV XBX,AXCON:ADD BX,2 LOOP LOOP2 MOV CX,DI LOOP LOOP1 RETCSEG ENDS END START3、 给出一百分制成绩,要求输出成绩等级“A”,“B”,“C”,“D”,“E”。90分以上为A,8089为B,7079为C,6069为D,60分以下为E。DATA SEGMENT X DB 52 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MAIN PROC FAR START: MOVAX,DATA MOVDS,AX MOVAL,X CMPAL,90 JBLAB1 MOVDL,A JMPEXIT LAB1: CMPAL,80 JBLAB2 MOVDL,B JMPEXIT LAB2: CMPAL,70 JBLAB3 MOVDL,C JMPEXIT LAB3: CMPAL,60 JBLAB4 MOVDL,D JMPEXIT LAB4: MOVDL,E EXIT: MOVAH,2 INT21H MOVAH,4CH INT21H MAIN ENDP CODE ENDS END START4、数据段中从TABLE开始的连续20个字节单元存放着一个字符串,编写程序,判断其中是否含有数字字符,若有,则将DX寄存器的第四位置为1,否则置为0。(设DX的最低位为第一位)mov cx, 20mov si, 0repeat:mov al,tablesicmp al, 30hjb gooncmp al, 39hja goonor dl, 8 jmp exitgoon:inc sidec cxjnz repeatand dl, 0f7h exit:5、将数据段中已定义的字符串STR中所有的小写字母转换为大写。DATA SEGMENT STR1 DB aGbhTYUNm LEN DB $-STR1 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX MOV CH, 0 MOV CL, LEN MOV BX, OFFSET STR1 DO: CMP BYTE PTRBX,a JB LOP CMP byte ptrBX, z JA LOP SUB BYTE PTRBX, 20H LOP: INC BX LOOP DO MOV AH,4CH INT 21H CODE ENDS END START6、编写程序,实现将数据段BUFF开始的字节单元中的10个数字0,1,2,3,4,5,6,7,8,9转化成相应的ASCII码送入以ASC开始的内存单元。 DATA SEGMENT BUFF DB 0,1,2,3,4,5,6,7,8,9 CONT EQU $-BUFF ASC DB 10 DUP(?) DATA ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX SUB SI,SI MOV CX,CONT LOP: MOV AL,BUFFSI OR AL,30H MOV ASCSI,AL INC SI LOOP LOP MOV AH,4CH INT 21H MAIN ENDP CODE ENDS END START7、在一个无符号字数组ARRAY中查找最大数,并将其存入字变量M中。data segmentarray dw 1234h,43h,3dfeh,9f1h,34hdw 99h,12abh,0f000h,23h,0edfhm dw ?data endscode segmentassume cs:code,ds:datamain proc farstart:movax,datamovds,axmovcx,(m-array)/2-1leabx,arraymovax,bxlab1:incbxincbxcmpax,bxjalab2movax,bxlab2:looplab1movm,axexit: movah,4chint21hmain endpcode endsend start8、从键盘上读入一字符串(长度小于40),将该串反转后,输出显示。 MAXNO EQU 41 DATA SEGMENT MESSG1 DB INPUT A STRING:$ MESSG2 DB IT IS REVERSE IS:$ MESSG3 DB 0AH,0DH,$ BUF DB MAXNO,?,MAXNO DUP(?) DATA ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA DX,MESSG1 MOV

温馨提示

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

评论

0/150

提交评论