北京理工大学汇编语言练习题及答案1
汇编语言试题及参考答案
汇编语言试题及参考答案一,填空题1.ZF标志位是标志结果是否为零的,若结果,ZF为( 1 ),否则ZF为( 0 ).当ZF为1时,SF为( 0 )2.标号可以有两种类型属性.它们是( )和( )3.8位无符号整数的表示范围为0--255,写成16进制形式为( ),8位有符号整数的表示范围为-128--+127,写成16进制形式为( )4.伪指令DB,GROUP 和NAME 三个标号名字域必须有名字的是( ),不得有名字的是( ),可有可无名字的是( ).5.循环程序通常由( )( )( )和循环结果外理四部分构成6.在数值不达式中,各种运算符可可混合使用,其优先次序规则*,/( )于+,-;XOR,OR( )于AND,LT( )于GT7. 宏指令定义必须由伪指令( )开始,伪指令( )结束,两者之间的语句称为( )8.调用程序与子程序之间的参数传递方法有四种,即堆栈法( )( )( )9.分别用一条语句实现下述指明的功能(1)栈顶内容弹出送字变量AYW( )(2)双字变量AYD存放的地址指针送ES和SI( )(3)变量AY2类型属性送AH( )(4)不允许中断即关中断( )(5)将字符串'HOW ARE YOU!'存入变量AYB( )(6)子程序返回调用程序( )(7)地址表达式AYY[4]的偏移地址送字变量ADDR( )(8)AX的内容加1,要求不影响CF( )(9)BX的内容加1,要求影响所有标志位( )(10)若操作结果为零转向短号GOON( )二,单选题1.IBM PC微机中,有符号数是用( )表示的1.原码2.补码3.反码4.BCD码2.把汇编源程序变成代码程序的过程是( )1.编译2.汇编3.编辑4.链接三,己知:VAR1,VAR2的类型属性分别为字和字节,标号LPFAR的类型属性为FAR.指出下列非法语句的错误原因1.POP CS( )2.INC [BX] ( )3.MVL 8( )4.JLE LPFAR( )5.MOV DB,1800( )6.MOV[DI],VAR17.SUB AX,VAR2( )8.CMP SS AX( )四,简答题1.试述子程序的一般结构组成2.标号有哪三个属性其含义是什么3.试述CMP AX,BX和SUB AX,BX两条语句的异同点五,阅读如下程序段,回答所提出的问题,假定X1,X2,...XN为无符号数. ORG 100HBLOK DW X1,X2, (X)COUNT EQU ($-BLOK)/2RESULT DW COUNT,...LEA BX,BLOK-2MOV CX,RESULTXOR AX,AXGOON:ADD BX,2CMP AX,[BX]JAE NEXTMOV AX,[BX]NEXT:LOOP GOONMOV RESULT+2,AX程序段执行完,回答下述问题RESULT+2字存储单元的内容=( )BX=( )程序循环次数=( )六,在下述程序段的每一空框内填入一个语句(不得修改其它语句),以实现如下功能:字节变量STR中存放着一个字符串,以0DH为结束标志,试求串长度并送字变量COUNT中.LEA SI,STR( )XOR CX,CXGOON: CMP AL,[SI]( )INC CX( )JMP GOONNEXT:MOV COUNT,CX七,编制将DS段中名为BUFB的字节存储区改写为空白字符(编码为20H)的程序段.假定BUFB存储区定义为BUFB DB N DUP('^'),其中N 为字面常量.八,己知宏指令为:SHIFT MACRO RR,COUNTMOV AX,COUNTIF RR LE 64MOV CL,3SHR AX,CLIF RR LT 16MOV CL,6SHR AX,CLENDIFENDIFENDM宏调用为:SHIFT 15,7FFFHSHIFT 80,9FFFH写出宏扩展后的等效源程序段.九,编写完整程序,功能是把N个8个二进制数据转换成16进制字符数据.假定N个数据存放在字节变量VARB中,转换后的字符数据存放在HVARB中,提示0--9的字符码为30H--39H,A--F的字符码为41H--46H汇编语言试题<>答案一,填空题(1)1,0,0(2)NEAR或近程,FAR或远程(3)0--FFH,80H--7FH(4)GROUP,NAME,DB(5)循环准备,循环体,循环的控制与修改(6)高,低,等(7)MACRO,ENOM,宏体(8)约定寄存器法,约定存储单元法,向量传递法(9)(POP AYW)(LES SI,AYD)(MOV AH,TYPE AY2)(CLI)(AYB DB"HOW ARE YOU!")(RET)(MOV ADDR,OFFSET AYY[4])(INC AX)(ADD BX,1)(JZ GOON)二,选择题1. ( 2 )2. ( 2 )三,1.CS不能作目的操作数2.[BX]=义性3.乘法指令源操作数不能是立即数4.远程标号不能作为条件转移指令的操作数5.立即数不能直接送段寄存器6.两个操作数不能同时为存储器操作数7.操作数不配,AX为字,VAR2为字节8.段寄存器不能作为运算指令的操作数四,简答题1.由保存现场,取入口参数,加工处理,进也口友数,恢复现场和返回程序2.段属性指定义该标号的段地址偏移属性:指该标号的偏移地址类型属性:指标号是在定义它的段内引用还是在其它段引用3.相同点:都执行AX-BX操作,影响所有标志位且对档志位的影响相同不同点:CMP执行后AX,BX 内容不改变,而SUB执行后,AX内为AX-BX之差,即内容变化了五,MAX(X1,X2,...XN)(COUNT-1)六,(MOV AL,ODH)(JE NEXT或JZ NEXT)(INC SI)七,MOV AX,SEG BUFBMOV DS,AXLEA SI BUFBMOV CX,NGOON:MOV BYTE PTR[SI],20HINC SILOOP GOON八,MOV AX,7FFFHMOV CL,3SHR AX,CLMOV CL,6SHR AX,CLMOV AX,9FFFH九,DATA SEGMENTVARB DB 45,36,377Q, (11011011)N EQU $-VARBHVARB DB 2 NDRP( )DATA ENDSSTACK SEGMENT PARA STACK "STACK" DB 256 DUP( )STACK ENDSCODE SEGMENTASSUME CS:COOE,DS:DATA,SS:STACK MAIN: PROC FARPUSH DSSUB AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV DX,NLEA DI,HVARBLEA SI,VARB;置初值GOCN:MOV AH,[SI]MOV AL,AHAND AH,0F0HMOV CL,4SHR AH,CLCMP AH,9JNA NEXT1ADD AH,7NEXT1:ADD AH,30HAND AL,DFH CMP AL,9JNA NEXT2ADD AL,7NEXT2:ADD AL,30H MOV [DI],AHMOV [DI],ALADD DI,2INC SIDEC DXJNZ GOONRETMAIN ENDP CODE ENDSEND MAIN。
汇编语言试题及参考答案1
汇编1一、单项选择题(每小题1分,共10分)1、十进制数269变换为十六进制数是(C)。
(A)10B (B)10C (C)10D (D)10E2、指令mov 100[si][bp],ax目标操作数的隐含段为(B )。
(A)数据段(B)堆栈段(C)代码段(D)附加段3、以下语句汇编后,CENTH的值是(C )buf1 dw 8,19,buf2 db 6,'abc$',10 dup('5'),CENTH equ buf2—buf1A.14B.8C.4D.174、若栈顶物理地址为20100H,当执行完指令PUSH AX后,栈顶的物理地址为(D)。
(A)20102H (B)20101H (C)200FFH (D)200FEH5、执行下列指令后,正确的结果是(B)。
MOV AL,100。
MOV BL,-2(A)AL=100H,BL=02H (B)AL=64H,BL=0FEH(C)AL=64H,BL=82H (D)AL=100H,BL=0FEH6、假定AX的内容为-32768,在执行了指令NEG AH后,标志位(SF,OF)为(D )。
(A)0,0 (B)0,1 (C)1,0 (D)1,17、设AL=0B4H,BL=11H,指令“MUL BL”和指令“IMUL BL”分别执行后OF,CF的值为(B)。
(A)OF=1,CF=0 (B)OF=1,CF=1 (C)OF=0,CF=0 (D)OF=0,CF=18、当A≥B时转移的条件转移指令为(A,B为带符号数)(D )。
(A)JA (B)JAE (C)JG (D)JGE9、完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是(A )。
(A)MOV AL,00H (B)AND AL,00H (C)XOR AL,AL (D)SUB AL,AL10、已知CALL BX执行前SP=100H,执行后SP的内容为(D)。
(A)100H (B)102H (C)98H (D)0FEH二、填空题(每空1分,共10分)1、(00101011)B+(13)D+(1B)H=(123 )Q2、IBM PC机内存容量最大为(1M )B,要寻找这样大的空间,需要()根地址线。
汇编语言题库及部分答案
汇编语言题库及部分答案一、单项选择题1、在下列的选项中,能够组成计算机系统的是(A )。
A.硬件系统和软件系统B.CPU、存储器、输入/输出设备C.操作系统、各种语言D.系统软件和应用软件2、汇编语言属于( B )。
A.用户软件B.系统软件C.高级语言D.机器语言3、汇编语言源程序经汇编程序汇编后产生的文件的扩展名是(B )。
A.EXE B.OBJ C.ASM D.LST4、汇编语言的什么文件经链接(LINK)后产生可执行文件?(D) A.ASM B.EXE C.LST D.OBJ5、中央处理器CPU是由(D )组成的。
A.运算器B.控制器C.寄存器组D.前三者6、IBM PC机的DOS是属于( B )。
A.用户软件B.系统软件C.系统硬件D.一种语言7、汇编语言源程序是( A )程序。
A.不可直接执行的B.可直接执行的C.经汇编程序汇编后就可执行的D.经连接后就可直接执行的8、8086/8088 CPU的寄存器组中,8位的寄存器共有(C )个。
A.4B.6C.8D.109、8086/8088 CPU的寄存器组中,16位的寄存器共有(D )个。
A.10B.12C.13D.1410、8086/8088 CPU执行算术运算时PSW共有( C )个标志位会受影响。
A.4B.5C.6D.711、在程序执行过程中,IP寄存器始终保存的是(B )。
A.上一条指令的首地址B.本条指令的首地址。
C.下一条指令的首地址D.需计算有效地址后才能确定地址。
12、IBM PC机的存储器可分( D )个段。
A.4B.256C.512D.6553613、当使用BP作编程地址时,此时使用的是(D )段。
A.CSB.DSC.ESD.SS14、如果指令的运算结果为0,则( C )标志位为1。
A.SFB.OFC.ZFD.CF15、如果指令的运算结果中有奇数个1,则(A )标志位为0。
A.PFB.CFC.OFD.SF16、IBM PC机的内存是按(B )是编址的。
汇编语言习题与答案
汇编语言习题与答案一、填空题:把答案填在题中横线上。
1.8位无符号整数的表示范围为0~255,写成16进制形式为00H~__________;8位有符号整数的表示范围为-128~+127,写成16进制形式为__________~__________。
2.8086/8088分段管理存储空间,但每段容量最大不超过__________。
3.逻辑地址为F000:100的存储单元,其物理地址是__________。
4.用来指示堆栈栈顶的偏移地址的是__________寄存器。
5.若要测试AL寄存器D4、D2、D0位是否都为0,则可使用__________指令语句(含操作数),以产生转移条件。
这条指令执行后将利用标志位__________实现转移。
6.若定义:bdata db2dup(1,2,2dup(3),4),则dbata变量前5个单元从低地址到高地址的数据依次是__________。
7.假设varw是一个16位变量,则指令“mov varw,ax”的目的操作数的寻址方式是__________。
二、选择题:在每小题给出的四个选项中,只有一项是符合题目要求的,请把所选项前的字母填在题后的括号内。
1.对汇编语言源程序进行翻译,形成OBJ文件的是A.汇编程序B.连接程序C.编辑程序D.调试程序[]2.下列各个8位二进制数的补码中,真值最大的是A.10001000B.11111111C.00000000D.00000001[]3.MASM语句中,表达常数不正确的形式是A.01101001BB.A346HC.’A’D.5600[]4.如果SS=600H,则说明堆栈段物理地址起始于A.60HB.600HC.6000HD.60000H[]5.dw50dup(?)预留了存储空间的字节数是A.25B.50C.100D.200[]6.下列指令中有操作数在代码段中的是A.mov ax,34hB.add ax,bxC.inc word ptr[34h]D.cmp ax,[34h][]7.假设AL=5,要使得AL=0FAH,应执行的指令是A.not alB.and al,0fhC.xor al,0f0hD.or al,0fh[]8.设置逻辑段应该采用的一对伪指令是A.segment/endsB.start/end startC.proc/endpD.macro/endm[]9.条件转移指令JNE条件是A.CF=0B.CF=1C.ZF=0D.ZF=1[]10.逻辑移位指令SHL可用于A.有符号数乘以2B.有符号数除以2C.无符号数乘以2D.无符号数除以2[]11.执行“in al,dx”指令后,进入AL寄存器的数据来自A.寄存器B.存储器C.立即数D.外设端口[]12.将十进制数75以压缩BCD码送入AX,正确的指令是A.mov ax,0075B.mov ax,0705C.mov ax,0075hD.mov ax,0705h[]13.如下指令可将AX寄存器内容改变的是A.cmp ax,bxB.test ax,bxC.and ax,bxD.xchg ax,bx[]14.设AH=10H,执行“neg ah”指令后,正确的结果是A.AH=10H、CF=1B.AH=F0H、CF=0C.AH=10H、CF=0D.AH=F0H、CF=1[]15.如下程序段:again:mov es:[di],alinc diloop again可用指令__________完成相同的功能。
汇编语言试题及答案
汇编语言试题及答案一、单项选择题(每题2分,共20分)1. 汇编语言是一种()。
A. 高级语言B. 低级语言C. 机器语言D. 符号语言答案:D2. 汇编语言程序必须经过()才能被计算机执行。
A. 编译B. 汇编C. 链接D. 解释答案:B3. 在汇编语言中,指令通常由()组成。
A. 操作码和操作数B. 操作码和地址码C. 操作码和数据D. 地址码和数据答案:A4. 汇编语言中的寄存器主要用于()。
A. 存储数据B. 存储指令C. 存储地址D. 存储控制信息答案:A5. 汇编语言中的立即寻址方式是指()。
A. 操作数在寄存器中B. 操作数在内存中C. 操作数在指令中D. 操作数在输入/输出端口中答案:C6. 在汇编语言中,指令“MOV AX, 1234H”的作用是()。
A. 将内存地址1234H的内容移动到AX寄存器B. 将立即数1234H移动到AX寄存器C. 将AX寄存器的内容移动到内存地址1234HD. 将AX寄存器的内容移动到另一个寄存器答案:B7. 汇编语言中的循环结构通常使用()指令实现。
A. JZB. JNZC. LOOPD. CALL答案:C8. 在汇编语言中,子程序调用通常使用()指令。
A. JZB. JNZC. CALLD. RET答案:C9. 汇编语言中的堆栈操作通常使用()指令。
A. PUSHB. POPC. MOVD. ADD答案:A10. 在汇编语言中,中断服务程序的结束通常使用()指令。
A. INTB. IRETC. RETD. CALL答案:B二、填空题(每题2分,共20分)1. 汇编语言中的指令通常由______和______两部分组成。
答案:操作码;操作数2. 汇编语言中的寄存器可以分为______、______和______三类。
答案:通用寄存器;段寄存器;控制寄存器3. 汇编语言中的寻址方式包括______、______、______和______等。
答案:立即寻址;直接寻址;间接寻址;寄存器寻址4. 在汇编语言中,指令“MOV AX, BX”的作用是将BX寄存器的内容______到AX寄存器。
汇编语言试题及参考答案
汇编语言试题及参考答案一、选择题(每题2分,共20分)1. 汇编语言中的指令通常由哪两部分组成?A. 操作码和操作数B. 地址和数据C. 指令和数据D. 操作码和地址答案:A2. 以下哪个不是汇编语言中的寻址方式?A. 直接寻址B. 间接寻址C. 立即寻址D. 寄存器寻址答案:B3. 在汇编语言中,以下哪个指令用于将数据从内存加载到寄存器中?A. MOVB. CMPC. ADDD. SUB答案:A4. 汇编语言中,以下哪个指令用于比较两个寄存器的内容?A. MOVB. CMPC. ADDD. SUB答案:B5. 在汇编语言中,以下哪个指令用于将一个寄存器的内容与立即数相加?A. MOVB. CMPC. ADDD. SUB答案:C6. 汇编语言中的条件跳转指令通常使用哪些条件?A. 零、非零B. 正、负C. 溢出、非溢出D. 所有上述条件答案:D7. 在汇编语言中,以下哪个指令用于将一个寄存器的内容与另一个寄存器的内容相减?A. MOVB. CMPC. ADDD. SUB答案:D8. 汇编语言中的循环结构通常使用哪种类型的跳转指令?A. 无条件跳转B. 条件跳转C. 直接跳转D. 间接跳转答案:B9. 在汇编语言中,以下哪个指令用于将一个寄存器的内容与内存中的内容相加?A. MOVB. CMPC. ADDD. SUB答案:C10. 汇编语言中,以下哪个指令用于将一个寄存器的内容与另一个寄存器的内容进行逻辑与操作?A. ANDB. ORC. NOTD. XOR答案:A二、填空题(每题2分,共20分)1. 在汇编语言中,指令MOV AX, BX的作用是将寄存器________的内容复制到寄存器________中。
答案:BX,AX2. 汇编语言中的指令JMP FAR PTR 100H:200H的作用是跳转到内存地址________。
答案:100H:200H3. 汇编语言中,指令CALL的作用是________。
汇编语言复习题附答案
汇编语言复习题附答案一、选择题1. 汇编语言是一种()。
A. 高级语言B. 机器语言C. 低级语言D. 面向对象语言答案:C2. 在汇编语言中,指令通常由()组成。
A. 操作码和操作数B. 操作数和地址C. 操作码和地址D. 操作码、操作数和地址答案:A3. 汇编语言中的寄存器通常用来()。
A. 存储数据B. 存储指令C. 存储程序D. 存储地址答案:A4. 汇编语言中的指令MOV AX, BX的作用是()。
A. 将AX寄存器的值移动到BX寄存器B. 将BX寄存器的值移动到AX寄存器C. 将AX和BX寄存器的值相加D. 将AX和BX寄存器的值相减答案:B5. 汇编语言中的循环结构通常使用()指令实现。
A. JZB. JNZC. LOOPD. CALL答案:C二、填空题1. 汇编语言中的指令ADD AX, BX表示将AX和BX寄存器的值相加,并将结果存入____寄存器。
答案:AX2. 汇编语言中的指令SUB AX, BX表示将AX寄存器的值减去BX寄存器的值,并将结果存入____寄存器。
答案:AX3. 汇编语言中的指令CMP AX, BX用于比较AX和BX寄存器的值,但不进行存储操作,结果影响____标志。
答案:标志寄存器4. 汇编语言中的指令JMP LABEL用于无条件跳转到标签____处执行。
答案:LABEL5. 汇编语言中的指令PUSH AX将AX寄存器的值压入____。
答案:堆栈三、简答题1. 简述汇编语言与机器语言的区别。
答案:汇编语言是一种低级语言,它使用助记符来表示机器语言的指令,更易于人类理解和编写。
机器语言则是由二进制代码组成的指令集,直接被计算机硬件执行,但对人类来说难以阅读和编写。
2. 描述汇编语言中如何实现条件跳转。
答案:汇编语言中实现条件跳转通常使用条件跳转指令,如JZ(跳转如果零)、JNZ(跳转如果非零)、JMP(无条件跳转)等。
这些指令根据CPU的状态寄存器中的条件码标志来决定是否跳转到指定的标签处执行。
计算机技术汇编语言试题含答案
计算机技术汇编语言试题含答案第一部分:选择题1. 汇编语言是计算机硬件的一种低级编程语言,其特点是()。
A. 高级、易读易写B. 低级、复杂C. 低级、易读易写D. 高级、复杂答案:C2. 汇编语言是一种()。
A. 人机交互语言B. 低级语言C. 高级语言D. 自然语言答案:B3. 汇编语言最主要的作用是()。
A. 提高计算机运行速度B. 完成特定的计算任务C. 方便程序员编写高级语言程序D. 简化计算机指令的执行过程答案:C4. 汇编语言的指令是由()组成的。
A. 二进制代码B. 十进制代码C. 字母和数字D. 中文字符答案:A5. 汇编语言与机器语言之间的关系是()。
A. 完全相同B. 相似但不完全一样C. 完全不同D. 无法确定答案:B第二部分:简答题1. 什么是汇编器?它的作用是什么?汇编器是一种用于将汇编语言代码翻译成机器代码的软件工具。
其作用是将人类可读的汇编语言指令转换成计算机能够理解的二进制代码,以便计算机能够执行相应的操作。
2. 谈谈汇编语言的优点和缺点。
汇编语言的优点包括:- 直接操作底层硬件,可精确控制计算机执行指令,提高程序执行效率。
- 可以直接访问和利用硬件资源,如寄存器、内存等。
- 可以编写高效的程序,适用于对性能要求较高的场景。
- 编写汇编语言程序相对来说较为简单,可以更好地理解计算机的工作原理。
汇编语言的缺点包括:- 难以学习和掌握,对于初学者来说门槛较高。
- 编写的程序复杂度高,维护困难。
- 汇编语言代码的可移植性差,不同的计算机体系结构需要不同的汇编指令集。
- 缺乏高级语言的抽象和封装特性,代码可读性差。
第三部分:编程题请编写一段汇编语言代码,实现将数组 A 中所有元素加 1 的功能。
数组 A 的起始地址保存在寄存器 AX 中,数组长度保存在寄存器 BX 中。
假设数组 A 的元素都是字节类型。
```asmMOV CX, 0 ; 用于循环计数的寄存器MOV SI, AX ; 用于保存数组起始地址的寄存器LOOP_START:MOV AL, [SI] ; 将当前数组元素的值加载到 AL 寄存器ADD AL, 1 ; 将 AL 寄存器中的值加 1MOV [SI], AL ; 将 AL 寄存器中的值存回数组对应位置INC CX ; 循环计数器加 1INC SI ; 数组地址指针加 1CMP CX, BX ; 比较循环计数器和数组长度JL LOOP_START ; 如果循环计数器小于数组长度,则跳转到LOOP_START 继续循环```答案:以上汇编语言代码实现了将数组 A 中的所有元素加 1 的功能。
汇编语言练习题及习题答案
汇编语言练习题及习题答案选择1、用户为了解决自己的问题,用汇编语言所编写的程序,称为___________。
A 、目标程序B、源程序C、可执行程序D、汇编程序2、无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指令是___________。
A、ADD BH,01HB、OR BH,01HC、XOR BH,01HD、TEST BH,01H3、设AL=20H,SI=0500H,DS=3000H,(30500H)=0C0H,CF=1,执行SBB AL,[SI]后,正确的结果是___________。
A、AL=5FH SF=1 CF=1B、AL=60H SF=1 CF=0C、AL=5FH SF=0 CF=1D、AL=60H SF=0 CF=04、设AX=1000HNEG AXNOT AX执行上述指令后,正确的结果是___________。
A、AX=1001HB、AX=0FFFHC、AX=1000HD、AX=0111H5、CBW指令的功能是___________。
A、把源操作数的符号位扩展到目的操作数中B、把AL中的符号位扩展到AH中C、把AH中的符号位扩展到AL中D、把AX中的符号位扩展到DX中6、AND,OR,XOR,NOT为四条逻辑运算指令,下面的解释正确的是A、指令XOR AX,AX执行后,AX内容不变,但设置了标志位B、指令OR DX,1000H执行后,将DX最高位置1,其余各位置0C、指令AND AX,OFH执行后,分离出AL低四位D、NOT AX,执行后,将AX清07、执行下列指令序列后,正确的结果是___________。
MOV AL,81HADD AL,ALADC AL,ALA、AL=05HB、AL=204HC、AL=04HD、AL=205H4、TEST DL,55HJE NEXT….NEXT:……上述程序段,执行JE指令时能产生转移的情况是。
A、DL>55HB、DL<55HC、DL=55HD、DL中第0、2、4、6位均为05、设CL=05H,要获得CL=0AH,可选用的指令是。
北理工8086汇编语言考试上机试题
1.请任意输入一个字符串,将该串倒序后在屏幕上显示。
2.请任意输入一个字符串,统计其中空格和A的个数,并将结果显示在屏幕上。
3.请任意输入一个字符串,将其中的空格全部删除,并将结果显示在屏幕上。
4.请任意输入一个字符串,将其中A换成B,并将结果显示在屏幕上。
5.请任意输入一个字符串,将其中A换成CC,并将结果显示在屏幕上。
Answer1:data segmentbuf1 db 100db ?db 100 dup(?)buf2 db 100 dup(?)buf3 db '$'buf4 db 0dh,0ah,'$'data endscode segmentassume cs:code,ds:data,es:datamain proc farmov ax,datamov ds,axmov es,axmov ah,0ahlea dx,buf1int 21hlea si,buf1lea bx,buf1+2mov cl,[si+1]mov ch,0mov si,cxdec silea di,buf2again: mov ax,[bx][si]mov [di],axdec siinc didec cljnz againmov al,buf3mov [di],almov ah,9lea dx,buf4mov ah,9lea dx,buf2int 21hmov ah,4chint 21hmain endpcode endsend mainAnswer2:data segmentbuf1 db 100db ?db 100 dup(?)buf2 db 0dh,0ah,'$'mem1 db 0mem2 db 0data endscode segmentassume cs:code,ds:data,es:data main proc farmov ax,datamov ds,axmov es,axmov ah,0ahlea dx,buf1int 21hlea di,buf1+2lea si,buf1+1mov cl,[si]mov ch,0mov bl,0mov bh,0again:mov al,[di]cmp al,41hjnz nextinc bljmp dispnext: cmp al,20hjnz dispinc bhdisp: inc dijnz againmov ah,9lea dx,buf2int 21hmov al,blmov ah,0call printfmov ah,9lea dx,buf2int 21hmov al,bhmov ah,0call printfmov ah,4chint 21h main endpprintf proc nearlea si,mem1mov cl,10div clmov [si],ahadd al,30hmov ah,2mov dl,alint 21hmov al,[si]mov ah,0mov cl,1div cladd al,30hmov ah,2mov dl,alint 21hretprintf endpcode endsend main Answer3:data segmentdb ?db 100 dup(?)buf1 db 0dh,0ah,'$'data endscode segmentassume cs:code,ds:data,es:data main proc farmov ax,datamov ds,axmov es,axmov ah,0ahlea dx,bufint 21hlea si,buf+1mov al,[si]mov cl,almov ch,almov dh,alinc siagain: mov al,[si]cmp al,20hjnz nextcall deletedec chjmp kakanext: inc sikaka: dec cljnz againlea di,buf+2disp: inc didec chjnz dispmov ah,24hmov [di],ahmov ah,9lea dx,buf1int 21hmov ah,9lea dx,buf+2int 21hmov ah,4chint 21hmain endpdelete proc nearmov di,simov dl,dhagain1:mov ah,[di+1]mov [di],ahinc didec dljnz again1retdelete endpcode endsend mainAnswer4:data segmentbuf db 100db ?db 100 dup(?)buf1 db 0dh,0ah,'$'count db 0data endscode segmentassume cs:code,ds:data,es:data main proc farmov ax,datamov ds,axmov es,axmov ah,0ahlea dx,bufint 21hlea si,buf+1mov cl,[si]mov ch,[si]lea si,buf+2again: mov al,[si]cmp al,41hjnz nextcall insertinc chinc countinc sinext: inc siinc countdec cljnz againlea di,buf+2 kaka: inc didec chjnz kakamov al,24hmov [di],almov ah,9lea dx,buf1int 21hmov ah,9lea dx,buf+2int 21hmov ah,4chint 21hmain endpinsert proc nearmov dh,chsub dh,countmov dl,chlea di,buf+2 mac: inc didec dljnz mac again1:mov bl,[di]mov [di+1],bldec didec dhjnz again1mov bh,43hmov [si],bhmov [si+1],bhretinsert endpcode endsend main answer5:data segmentbuf db 100db ?db 100 dup(?)buf1 db 0dh,0ah,'$'data endscode segmentassume cs:code,ds:data,es:data main proc farmov ax,datamov ds,axmov es,axmov ah,0ahlea dx,bufint 21hlea si,buf+1mov cl,[si]mov ch,0inc siagain: mov al,[si]cmp al,60hja nextmov ah,20hor al,ahmov [si],alnext: inc siloop againmov bl,24hmov [si],blmov ah,9lea dx,buf1int 21hmov ah,9lea dx,buf+2int 21hmov ah,4chint 21hmain endpcode endsend main。
汇编语言综合参考答案
综合参考答案练习题1(参考答案)1.答:微型计算机可分为单片微处理机(简称单片机)、单板机和通用微型计算机三大类。
⑴单片机就是把CPU、存储器、输入/输出接口、数/模转换等部件都集成在一个电路芯片上,并带有功能很强的指令系统。
⑵单板机,就是将CPU、存储器、输入/输出接口、小键盘和数码显示等外部设备,装配在一块印制电路板上。
具有完全独立的处理程序的能力,但输入/输出设备简单。
⑶通用微型计算机将不同用途的外设接口设计为独立的电路板(适配卡),作为微机的接口配件,微机内则采取总线插槽的形式,为外部设备提供连接的接口。
这样,在一台基本主机上就可以根据应用的要求,配置不同用途的外部设备。
2.答:一组总线可分为地址总线、控制总线和数据总线。
地址总线是用来选择部件或设备的;控制总线是用来控制数据传送方向的;数据总线则是用来交换信息的通路。
3.答:微型计算机结构由CPU、存储器、I/O接口、I/O设备和总线五大部分组成。
①CPU是微型计算机的核心,它在很大程度上决定了计算机的性能,它由控制器和运算器构成。
CPU从存储器中取出二进制代码指令,并将其译成一系列操作命令,机器依次执行这些操作指令,周而复始,直到整个程序执行结束。
②存储器是用来存放那些即将执行的程序和数据的,它使计算机具有记忆能力,它也是外部设备与计算机进行信息交换的存储部件。
③I/O接口就是连接CPU与外部设备的逻辑电路,它具有信息交换和数据缓冲的功能。
I/O接口通常具有五个方面的功能:⑴提供数据缓冲;⑵判别主机是否选中所需的某一台设备;⑶接收主机与外设发来的各种控制信号,并产生各种操作命令,实现对设备的控制操作;⑷提供主机与外设之间的通信控制,包括同步控制、数据格式转换、中断控制等控制信息;⑸将外设的工作状态保存下来,并通知主机。
④I/O设备是人和计算机之间进行信息交换的桥梁。
⑤总线是计算机内部各部件之间进行信息交换的公共通路,或称一组共用的信号线。
北语15春《汇编语言》作业1及答案1
B、从存储单元读出一个字节送AX
C、将AX中的一个字节写入存储单元
D、讲AX中的一个字写入存储单元
标准答案:A
学员答案:A
此题得分:
题号:3题型:单项选择题〔请在以下几个选项中选择唯一正确答案〕此题分数:3.57
内容:
图形:
A.(A)
B、(B)
C、(C)
D、(D)
标准答案:C
内容:
一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是( )。
A、12CSBH
B、12B6BH
C、12C59H
D、12BFEH
标准答案:C
学员答案:C
此题得分:
题号:10题型:单项选择题〔请在以下几个选项中选择唯一正确答案〕此题分数:3.57
内容:
图形:
A.(A)
B、(B)
C、(C)
D、(D)
标准答案:C
学员答案:C
此题得分:
题号:11题型:单项选择题〔请在以下几个选项中选择唯一正确答案〕此题分数:3.57
内容:
图形:
A.(A)
B、(B)
C、(C)
D、(D)
题号:1题型:单项选择题〔请在以下几个选项中选择唯一正确答案〕此题分数:3.57
内容:
图形:
A.(A)
B、(B)
C、(C)
D、(D)
标准答案:C
学员答案:C
此题得分:
题号:2题型:单项选择题〔请在以下几个选项中选择唯一正确答案〕此题分数:5.36
内容:
指令MOV AX,COUNT[BX]完成的操作是( )。
内容:
汇编语言试题及答案
汇编语言试题及答案在此提供一篇长度超过2000字的文章,包含汇编语言试题及答案。
文章排版整洁美观,语句通顺,全文表达流畅,无影响阅读体验的问题。
文章中不包含网址链接。
请注意,为了保持文章的可读性,我将不使用特定的合同或作文格式。
以下是试题及答案:汇编语言试题及答案第一部分:选择题1. 汇编语言是一种与计算机底层直接交互的语言,它是一种________。
A. 低级语言B. 高级语言C. 自然语言D. 人工语言2. 汇编指令通常由________组成。
A. 字节B. 字C. 双字D. 指针3. 汇编语言最基本的操作单元是________。
A. 指令B. 寄存器C. 内存单元D. 字节4. 哪个寄存器用于保存程序执行的当前地址?A. AXB. BXC. IPD. SP5. 在汇编语言中,ADD指令的作用是________。
A. 从内存中读取数据B. 将两个数相加C. 将某个寄存器的值加1D. 将数据写入内存6. 在8086汇编语言中,DW是什么的缩写?A. Double WordB. Data WordC. Define WordD. Data Width7. JMP指令用于________。
A. 跳转到程序指定的地址B. 变量声明C. 将寄存器的值减1D. 在屏幕上显示字符8. 在汇编语言中,数据可以以________的形式表示。
A. 二进制B. 十进制C. 十六进制D. 所有上述形式9. 在8086汇编语言中,MOV指令的作用是________。
A. 将数据复制到一个寄存器或内存位置B. 将寄存器的值加1C. 跳转到程序指定的地址D. 读取屏幕上的字符10. 汇编语言编写的程序需要经过________才能在计算机上运行。
A. 编译B. 解释C. 加密D. 校验第二部分:简答题1. 简要解释一下汇编语言和机器语言的区别。
汇编语言是一种接近机器语言的低级语言,使用助记符来代替机器指令的二进制码。
汇编语言通过编译器将其转换为机器语言,然后由计算机执行。
《汇编语言程序设计》考试练习题及答案
《汇编语言程序设计》考试练习题及答案一、单选题1. 计算机中存取信息或数据的最小单位为()A 、位B 、字节C 、字D 、双字答案:B2. 调用子程序的指令为()A 、CALLB 、RETC 、HLTD 、NOP答案:A3. DOS功能调用是通过()指令去调用DOS系统提供的软件中断处理程序A 、INT 21HB 、INT 23HC 、INT 12HD 、INT 11H答案:A4. 满足()时,CPU允许中断A 、IF=0B 、IF=1C 、DF=0D 、DF=1答案:B5. 完成对CL寄存器的内容乘以4的正确操作是()。
A 、ROL CL,1 ROL CL, 1B 、MUL 4C 、SHL CL, 1 SHL CL, 1D 、MOV CL , 2 SHL CL, CL答案:C6. 下面寄存器中可以分为两个独立8位寄存器的是()A 、AXB 、DIC 、CSD 、SI答案:A7. ()是用二进制编码的机器指令的集合及一组使用机器指令的规则,是CPU能直接识别的唯一语言。
A 、汇编语言B 、机器语言C 、JAVA语言D 、C语言答案:B8. 源程序模块结束语句为()A 、ORGB 、ENDC 、SEGMENTD 、START答案:B9. 8位补码表示的有符号数的表示范围是()A 、0~255B 、-128~+127C 、0~65535D 、-32768~+32767答案:B10. 在一段汇编程序中多次调用另一段程序,用宏指令比用子程序实现起来,下列说法正确的是()A 、占内存空间小,但速度慢B 、占内存空间大,但速度快C 、占内存空间相同,但速度快D 、占内存空间相同,但速度慢答案:B11. 与LEABX ,BUF指令完全等效的指令是()。
A 、MOV BX ,BUFB 、LDS BX ,BUFC 、MOV BX ,OFFSET BUFD 、MOV BX ,WORD PTR BUF答案:C12. 14的非压缩BCD码为()A 、00010100B 、01000001C 、0000000000010100D 、0000000100000100答案:D13. 要实现使BETA的值为56,应采用的语句是()A 、BETA DB 56B 、BETA DB 56HC 、BETA EQU 56HD 、BETA EQU 56答案:D14. ()不可以做目的操作数A 、立即数B 、寄存器C 、存储器操作数D 、累加器答案:A15. 计算机一般由中央处理器、存储器和输入/输出子系统组成,其中()可以存放程序、数据、信息及中间结果。
《汇编语言》习题及解答
检测点1.1(第9页)(1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13位。
(2)1KB的存储器有1024个存储单元,存储单元的编号从0到1023。
(3)1KB的存储器可以存储8192(2^13)个bit,1024个Byte。
(4)1GB是1073741824(2^30)个Byte、1MB是1048576(2^20)个Byte、1KB是1024(2^10)个Byte。
(5)8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力分别为: 64(KB)、1(MB)、16(MB)、4(GB)。
(6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。
则它们一次可以传送的数据为: 1(B)、1(B)、2(B)、2(B)、4(B)。
(7)从内存中读取1024字节的数据,8086至少要读512次,80386至少要读256次。
(8)在存储器中,数据和程序以二进制形式存放。
解题过程:(1)1KB=1024B,8KB=1024B*8=2^N,N=13。
(2)存储器的容量是以字节为最小单位来计算的,1KB=1024B。
(3)8Bit=1Byte,1024Byte=1KB(1KB=1024B=1024B*8Bit)。
(4)1GB=1073741824B(即2^30)1MB=1048576B(即2^20)1KB=1024B(即2^10)。
(5)一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。
这样的CPU最多可以寻找2的N次方个内存单元。
(一个内存单元=1Byte)。
(6)8根数据总线一次可以传送8位二进制数据(即一个字节)。
(7)8086的数据总线宽度为16根(即一次传送的数据为2B)1024B/2B=512,同理1024B/4B=256。
(8)在存储器中指令和数据没有任何区别,都是二进制信息。
《汇编语言程序设计》练习题参考答案.
《汇编语言程序设计》练习题一参考答案一、简答题1.2.答:字节单元:(30022H) = AB H,(30024H) = EF H字单元:(30021H) = AB34 H,(30022H) = CDAB H。
3.答:(1)MOV BX, OFFSET BLOCK + 0AHMOV DX, [BX](2)MOV BX, 0AHMOV DX, BLOCK[BX](3)MOV BX, OFFSET BLOCKMOV SI, 0AHMOV DX, [BX][SI]4.答:BYTE_VAR 42 59 54 45 0C EE 00 ?? - 01 02 01 02 ?? 00 ?? 0102 01 02 ?? 00 ?? 01 02 - 01 02 ??WORD_VAR 00 00 01 00 02 00 00 00 - 01 00 02 00 00 00 01 0002 00 00 00 01 00 02 00 - 00 00 01 00 02 00 ?? ??FB FF 59 42 45 54 56 02 -5.答:宏展开:2 DATA0 DW ?2 DATA1 DW ?6.答:可以用来指示存储器地址的寄存器有BX、SP、BP、DI、SI、IP、CS、DS、7.答:该程序的第一个字的物理地址是0AAA40H。
8.答:(1) 064DH(2) 0691H(3) 05ECH9.答:(1)MOV AX, [ BX+0CH ]MOV ZERO, AX(2)MOV AX, ARRAY[BX]MOV ZERO, AX10答:DATASG SEGMENT AT 0E000HWORD_ARRAY LABEL WORDBYTE_ARRAY DB 100 DUP (?)DATASG ENDSSTACKSG SEGMENT PARA STACK 'STACK'DW 32 DUP (?)TOS LABEL WORDSTACKSG ENDSCODESG SEGMENTORG 1000HMAIN PROC FARASSUME CS:CODESG, DS:DATASG, ES:DATASG, SS:STACKSG START:MOV AX, STACKSGMOV SS, AXMOV SP, OFFSET TOSPUSH DSSUB AX, AXPUSH AXMOV AX, DATASGMOV DS, AXMOV ES, AX……RETMAIN ENDPCODESG ENDSEND START11.答: CLRB MACRO N, ARRAYCLDMOV CX, NMOV AL, 20HLEA DI, ARRAYREP STOSBENDM12.答:(1)AX、BX、CX、DX、AH、AL、BH、BL、CH、CL、DH、DL、13.答:唯一正确的是D。
(完整版)汇编语言试题及答案.
一,单项选择题 (每题 1 分,共 20 分1-10CCCCAADACB 11-20.ADBBAADDCC1.指令 JMP FAR PTR DONE属于 ( CA.段内转移直接寻址B.段内转移间接寻址C.段间转移直接寻址D.段间转移间接寻址2.以下表达正确的选项是 (A.对两个无符号数进行比较采纳CMP 指令 ,对两个有符号数比较用CMP S指令B.对两个无符号数进行比较采纳CMPS指令 ,对两个有符号数比较用CM P指令C.对无符号数条件转移采纳JAE/JNB指令 ,对有符号数条件转移用JGE/J NL指令D.对无符号数条件转移采纳JGE/JNL指令 ,对有符号数条件转移用 JAE/J NB 指令3.一个有 128 个字的数据区 ,它的开端地点为 12ABH:00ABH,请给出这个数据区最末一个字单元的物理地点是 (A.12CSBHB.12B6BHC.12C59HD.12BFEH4.在以下指令的表示中 ,不正确的选项是 (A.MOV AL,[BX+SI]B.JMP SHORT DONIC.DEC [BX]D.MUL CL5.在进行二重循环程序设计时,以下描绘正确的选项是 (A.外循环初值应置外循环以外 ;内循环初值应置内循环以外 ,外循环以内B.外循环初值应置外循环以内 ;内循环初值应置内循环以内C.内、外循环初值都应置外循环以外D.内、外循环初值都应置内循环以外,外循环以内6.条件转移指令 JNE的测试条件为 (A.ZF=0B.CF=0C.ZF=1D.CF=17.8086CPU在基址加变址的寻址方式中,变址存放器能够为 (A.BX 或 CXB.CX或 SIC.DX或 SID.SI或 DI8.已知 BX=2000H,SI=1234H,则指令 MOV AX,[BX+SI+2]的源操作在 (中。
A.数据段中偏移量为3236H 的字节B.附带段中偏移量为3234H 的字节C.数据段中偏移量为3234H 的字节D.附带段中偏移量为3236H 的字节9.履行以下程序 :(MOV AX,0MOV AX,0MOV BX,1MOV CX,100A:ADD AX,BXINC BXLOOP AHLT履行后 (BX=(A.99B.100C.101D.10210.上题的程序履行后 (AX=(A.5000B.5050C.5100D.515011.关于以下程序段 :(AGAIN:MOV AL,[SI]MOV ES:[DI],ALINC SIINC DILOOP AGAIN也可用 ______指令达成相同的功能。
汇编语言的试题及答案
汇编语言的试题及答案1. 简述汇编语言的特点。
- 汇编语言是一种低级语言,它非常接近于计算机硬件。
- 汇编语言的语句通常与机器语言指令一一对应。
- 它允许程序员直接控制硬件资源。
- 汇编语言的程序需要通过汇编器转换成机器语言。
2. 解释以下汇编指令的功能:- `MOV AX, BX`:将寄存器BX的值复制到寄存器AX。
- `ADD AX, 1000H`:将AX寄存器的值加上十六进制数1000H。
- `JMP 0100H`:跳转到内存地址0100H处执行指令。
3. 汇编语言中,如何表示一个立即数?- 在汇编语言中,立即数通常直接跟在指令后面,并用符号`#`(在某些汇编器中)或直接写值来表示。
4. 请写出一个简单的汇编程序,实现将两个数相加并存储结果。
- `MOV AX, 5`;将数值5加载到寄存器AX。
- `MOV BX, 3`;将数值3加载到寄存器BX。
- `ADD AX, BX`;将BX寄存器的值加到AX寄存器的值上。
- `MOV CX, AX`;将AX寄存器的值(即结果)存储到CX寄存器。
5. 在汇编语言中,如何实现循环结构?- 使用`LOOP`指令可以创建循环结构。
`LOOP`指令会将计数寄存器(通常是CX)的值减1,并且如果结果不为0,则跳转到指定的标签。
- 示例:```MOV CX, 10LOOP_START:; 循环体代码LOOP LOOP_START```6. 汇编语言中,如何实现子程序的调用和返回?- 使用`CALL`指令调用子程序,使用`RET`指令返回。
- 示例:```SUBROUTINE:; 子程序代码RETMAIN:CALL SUBROUTINE; 主程序代码```7. 请解释汇编语言中堆栈的作用。
- 堆栈用于存储临时数据,如函数调用时的参数和返回地址。
- 堆栈遵循后进先出(LIFO)的原则。
- 常用的堆栈操作指令包括`PUSH`(将数据压入堆栈)和`POP`(从堆栈弹出数据)。
汇编语言习题答案1-7
汇编语言各章习题答案习题一参考答案1.1无符号数: 11010011=211=D3H,01110111=119=77H,10000011=131=83H,00101111=47=2FH,10101010=170=AAH带符号数:11010011= -45=D3H,01110111=+119=77H,10000011= -125=83H,00101111=+47=2FH,10101010= -86=AAH注意:表示带符号数时,为此数的补码表示。
1.2 5E8AH,0BE6H,3DEH,4940H1.3 00011101+00110101=01010010=52H=8201001001+11101000=00110001=31H=4910111110+01010010=00010000=10H=1610011010+11110001=10001011=8BH= -1171.4 00101001+01010011=01111100+00000110=10000010=82H=8201110011-00100100=01001111-00000110=01001001=49H=4901100110+00011000=01111110+00000110=10000100=84H=840000000100110010+01110101=0000000110100111+00000110=0000001000000111=0207H=2071.5 000020A3H,FF94H,00003456H,007FH,FFFFEC00H1.6 无符号数:0~65535,0000H~FFFFH;带符号数:-32768~+32767,8000H~7FFFH1.7 (1) 38H等于十进制数56,是十进制数56的补码,数字8的ASCII码,十进制数38的压缩BCD 码(2) FFH等于十进制数-1,是带符号数-1的补码,无符号数为255(3) 5AH等于十进制数90,是十进制数90的补码,大写字母Z的ASCII码(4) 0DH等于十进制数13,是十进制数13的补码,回车符的ASCII码1.8 (1) 108=01101100B=6CH,补码01101100B,压缩BCD码0000000100001000,ASCII码313038H(2) 46=00101110B=2EH,补码00101110B,压缩BCD码01000110,ASCII码3436H(3) –15=11110001B=F1H,补码11110001B,ASCII码2D3135H(4) 254=0000000011111110B=00FEH,补码0000000011111110B,压缩BCD码0000001001010100,ASCII码323534H1.9 (1) 56+63=01110111B,CF=0,SF=0,ZF=0,OF=0(2) 83-45=00100110B,CF=0,SF=0,ZF=0,OF=0(3) -74+29=11010011B,CF=0,SF=1,ZF=0,OF=0(4) -92-37=01111111B,CF=1,SF=0,ZF=0,OF=11.10 回车、换行、响铃、ESC键、空格键、@、P、p习题二参考答案2.9 最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节)每段最少16个字节单元,最大64K字节单元。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、1.请任意输入一个字符串,将该串倒序后在屏幕上显示。
DATAS SEGMENTBUF DB 40DB ?DB 40 DUP(0)ACC DB 0CHAR DB ?DATAS ENDSSTACKS SEGMENTDB 100 DUP(0)STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AXMOV AH,0AHLEA DX,BUFINT 21H ; 输入字符串MOV AH,0EHMOV AL,0DHINT 10HMOV AL,0AHINT 10H ;回车换行LEA SI,BUFMOV AL,[SI+1]MOV AH,0MOV ACC,ALINC SIADD SI,AXL1: MOV DL,[SI]MOV AH,02HINT 21HDEC SIDEC ACCCMP ACC,0JNZ L1MOV AH,4CHINT 21HCODES ENDSEND START2.请任意输入一个字符串,统计其中空格和A的个数,并将结果显示在屏幕上。
DATA SEGMENTBUF DB 100DB ?DB 100 DUP(?) CHAR DB 0ACC DB 0SPACE DB 0CHARA DB 0 DATA ENDS STACK SEGMENT DB 100 DUP(0) STACK ENDS CODE SEGMENT ASSUMEDS:DATA,CS:CODE MAIN PROC FARMOV AX,DA TAMOV DS,AXLEA DX,BUFMOV AH,0AHINT 21H ;输入字符串MOV AH,02HMOV DL,0DHINT 21HMOV DL,0AHINT 21HLEA SI,BUFMOV AL,[SI+1]MOV ACC,ALMOV SI,2L: CMP BUF[SI],' 'JZ LSPACECMP BUF[SI],'A'JZ LCHARAINC SIDEC ACCCMP ACC,0JZ SHOWJMP LLSPACE:INC SPACEINC SIDEC ACCCMP ACC,0JZ SHOWJMP LLCHARA:INC CHARAINC SIDEC ACCCMP ACC,0JZ SHOWJMP LSHOW:CMP SPACE,0AHJAE SHOWSADD SPACE,30HMOV DL,SPACEMOV AH,2INT 21H ;若SPACE小于10个,直接输出个数SHOW1:MOV AH,0EHMOV AL,0DHINT 10HMOV AL,0AHINT 10HCMP CHARA,0AHJAE SHOWAADD CHARA,30HMOV AH,2MOV DL,CHARAINT 21H ;若A个数小于10,直接输出个数JMP EXITSHOWS:MOV AL,SPACEMOV AH,0MOV DL,10DIV DLADD AH,30HMOV SPACE,AHADD AL,30HMOV AH,2MOV DL,ALINT 21HMOV DL,SPACEINT 21HJMP SHOW1SHOWA:MOV AL,CHARAMOV AH,0MOV DL,10DIV DLADD AH,30HMOV CHARA,AHADD AL,30HMOV AH,2MOV DL,ALINT 21HMOV DL,CHARAINT 21HEXIT:MOV AH,4CHINT 21HMAIN ENDPCODE ENDSEND MAIN3.请任意输入一个字符串,将其中的空格全部删除,并将结果显示在屏幕上。
DATA SEGMENTBUF DB 100DB ?DB 100 DUP(?)INP DB 'Please input a string:','$'CHAR DB 0ACC DB 0DATA ENDSSTACK SEGMENTDB 100 DUP(0)STACK ENDSCODE SEGMENTASSUMEDS:DATA,CS:CODE,ES:ST ACKSTART: MOV AX,DA TAMOV DS,AX ; 赋初值MOV AH,09HLEA DX,INPINT 21H ; 提示输入MOV AH,0AHLEA DX,BUFINT 21H ; 输入字符串MOV AH,2MOV DL,0DHINT 21HMOV DL,0AHINT 21H ; 回车换行LEA SI,BUFMOV DL,[SI+1]MOV ACC,DLMOV SI,2LOP:MOV DL,BUF[SI]MOV CHAR,DLCMP CHAR,' 'JZ LADDMOV AH,2MOV DL,CHARINT 21H ;若不是空格则输出LADD:INC SIDEC ACCCMP ACC,0JZ EXITJMP LOP EXIT: MOV AH,4CHINT 21HCODE ENDSEND START4.请任意输入一个字符串,将其中A换成B,并将结果显示在屏幕上。
DATA SEGMENTINP DB 'Please input a string:','$'CHAR DB 0ACC DB 0BUF DB 50DB ?DB 50 DUP(0)DATA ENDSSTACK SEGMENTDB 100 DUP(0)STACK ENDSCODE SEGMENTASSUMECS:CODE,DS:DA TA START:MOV AX,DA TAMOV DS,AXMOV AH,9LEA DX,INPINT 21H ;提示输入字符串MOV AH,0AHLEA DX,BUFINT 21HMOV AH,2MOV DL,0DHINT 21HMOV DL,0AHINT 21H ;输入字符串LEA SI,BUFMOV DL,[SI+1]MOV ACC,DL ;记录字符串个数MOV SI,2MOV AH,2LA: MOV DL,BUF[SI]CMP DL,'A'JZ PUTCCINT 21HLAD:INC SIDEC ACCMOV DH,ACCCMP DH,0JZ EXITJMP LAPUTCC:MOV DL,'C'INT 21HINT 21HJMP LADEXIT:MOV AH,4CHINT 21HCODE ENDSEND START5.请任意输入一个字符串,将其中A换成CC,并将结果显示在屏幕上。
DATA SEGMENTINP DB 'Please input a string:','$'CHAR DB 0ACC DB 0BUF DB 50DB ?DB 50 DUP(0)DATA ENDSSTACK SEGMENTASSUMECS:CODE,DS:DA TA START:MOV AX,DA TAMOV DS,AXMOV AH,9LEA DX,INPINT 21H ;提示输入字符串MOV AH,0AHLEA DX,BUFINT 21HMOV AH,2MOV DL,0DHINT 21HMOV DL,0AHINT 21H ;输入字符串LEA SI,BUFMOV DL,[SI+1]MOV ACC,DL ;记录字符串个数MOV SI,2MOV AH,2LA: MOV DL,BUF[SI]CMP DL,'A'JZ PUTCCINT 21HLAD:INC SIDEC ACCMOV DH,ACCCMP DH,0JZ EXITJMP LAPUTCC:INT 21HINT 21HJMP LAD EXIT:MOV AH,4CHINT 21H CODE ENDS END START6.请任意输入一个字符串,将其中大写字母换成小写字母,并将结果显示在屏幕上。
DATA SEGMENTINP DB 'Please input a string:','$'CHAR DB 0ACC DB 0BUF DB 50DB ?DB 50 DUP(0)DATA ENDSSTACK SEGMENTDB 100 DUP(0)STACK ENDSCODE SEGMENTASSUMECS:CODE,DS:DA TA START:MOV AX,DA TAMOV DS,AXMOV AH,9LEA DX,INPINT 21H ;提示输入字符串MOV AH,0AHLEA DX,BUFINT 21HMOV AH,2MOV DL,0DHINT 21HMOV DL,0AHINT 21H ;输入字符串LEA SI,BUFMOV DL,[SI+1]MOV ACC,DL ;记录字符串个数MOV SI,2MOV AH,2LA: MOV DL,BUF[SI]CMP DL,'A'JB PUTCMP DL,'Z'JBE PUTCHGPUT:INT 21HJMP LADPUTCHG:ADD DL,32INT 21HLAD:INC SIDEC ACCMOV DH,ACCCMP DH,0JZ EXITJMP LAEXIT:MOV AH,4CHINT 21HCODE ENDSEND START7.请任意输入一个字符串,将其中的英文字母全部删除,并将结果显示在屏幕上。
DATA SEGMENTINP DB 'Please input a string:','$'CHAR DB 0ACC DB 0BUF DB 50DB ?DB 50 DUP(0)DATA ENDSSTACK SEGMENTDB 100 DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART:MOV AX,DA TAMOV DS,AXMOV AH,9LEA DX,INPINT 21H ;提示输入字符串MOV AH,0AHLEA DX,BUFINT 21HMOV AH,2MOV DL,0DHINT 21HMOV DL,0AHINT 21H ;输入字符串LEA SI,BUFMOV DL,[SI+1]MOV ACC,DL ;记录字符串个数MOV SI,2MOV AH,2LA: MOV DL,BUF[SI]CMP DL,'A'JB PUTCMP DL,'Z'JBE LADCMP DL,'a'JB PUTCMP DL,'z'JBE LAD PUT:INT 21HJMP LAD LAD:INC SIDEC ACCMOV DH,ACCCMP DH,0JZ EXITJMP LAEXIT:MOV AH,4CHINT 21HCODE ENDSEND START。