汇编语言上机练习考题
汇编语言试题及参考答案

汇编语言试题及参考答案一,填空题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. 使用汇编语言编写一个程序,实现两个数相加的功能。
2. 编写一个汇编语言程序,将一个字符串逆序输出。
3. 设计一个程序,判断一个数是否为偶数。
4. 编写一个程序,实现一个简单的计算器,可以进行加减乘除运算。
二、中级题
1. 设计一个程序,实现排序算法中的冒泡排序。
2. 编写一个汇编语言程序,判断一个字符串是否为回文串。
3. 设计一个程序,将一个数组中的奇数和偶数分别存放在两个新的
数组中。
4. 编写一个程序,实现一个简单的文本编辑器,可以实现插入、删除、替换等功能。
三、高级题
1. 设计一个程序,实现图像的旋转和缩放功能。
2. 编写一个汇编语言程序,实现一个简单的操作系统。
3. 设计一个程序,实现一个简易的数据库系统,可以进行数据的增删查改操作。
4. 编写一个程序,实现一个简单的网络聊天室。
以上是《汇编语言》练习题库的部分题目,通过做题可以提高对汇编语言的理解和应用能力。
同时,建议读者在做题的过程中,结合教材和其他学习资料,加深对汇编语言的学习和掌握。
祝愿大家在汇编语言的学习中取得优异的成绩!。
汇编语言试题及参考答案

汇编语言试题及参考答案一、选择题(每题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,1。
请输入任何字符串,并在颠倒顺序后显示在屏幕上。
2。
请输入任意字符串,计算空格和A的数量,并在屏幕上显示结果3.请输入任何字符串,删除其中的所有空格,并在屏幕上显示结果。
4.请输入任何字符串,用副本替换A,并在屏幕上显示结果5。
请输入任何字符串,用小写字母替换大写字母,并在屏幕上显示结果6.请输入任何字符串,删除所有英文字母,并在屏幕上显示结果。
二、7。
现有字符串是数据、名称、时间、文件、代码、路径、用户、退出、退出、文本。
请编写一个程序,从键盘输入4字符串,如果有的话,修改成磁盘,并在显示器上显示结果。
8。
现有的字符串集有随机存取存储器、是、红色、The、GET、FOR、AND、KEY、NOT、MAY。
请编写一个程序,按照ASCII的大小对它们进行排序,并在显示器上显示出来。
9。
现有的字符串集是数据、名称、时间、文件、代码、路径、用户、退出、退出、文本。
请编写一个程序,从键盘输入4个字符串,如果有的话,将其删除,并显示在显示器上。
10。
现有的字符串集有数据、名称、时间、文件、代码、路径、用户、退出、退出、文本。
请编写一个程序对以上个字符串进行排序(升序),并插入磁盘使它们保持有序,并在显示器上显示出来。
三、11。
键盘输入一个十进制数(字类型),以十六进制的形式输出12.键盘以二进制输出的形式输入一个十进制数(字类型)13.键盘输入一个二进制数(字类型),以十六进制的形式输出14.键盘以十进制输出的形式输入二进制数(字类型)15.键盘以十进制输出的形式输入一个十六进制数(字类型)16.键盘输入一个十六进制数(字类型),以二进制输出的形式(1)输入、转换和显示均以子程序形式编写2程序可以循环接收不同的十进制数并进行处理。
当非数字键被按下时,它退出主程序并返回操作系统。
四、17。
将一组带符号数字中的负数相加,计算负数的数量,并在屏幕上以十进制形式显示结果38H、4AH、0C5H、83H、9CH、0B4H、7FH、0C4H、05H、0F5H 18。
汇编语言试题 (2)

汇编语言试题题目一:寄存器及栈操作假设有一段汇编代码如下,请根据代码的功能回答相应的问题:push ebpmov ebp, espmov eax, dword ptr [ebp + 8]add eax, dword ptr [ebp + 12]pop ebpret1.以上汇编代码中,push ebp和pop ebp的作用分别是什么?2.mov ebp, esp的作用是什么?有什么作用范围?3.dword ptr是什么意思?4.请解释ret的作用。
解答:1.push ebp的作用是将ebp的值保存到栈中,而pop ebp的作用是将栈中的值弹出,并将其赋给ebp寄存器。
这是函数调用的常用操作,用来保存和恢复函数的堆栈帧。
12.mov ebp, esp的作用是将栈顶地址存入ebp寄存器中,以便在函数内部可以通过ebp寄存器来访问函数参数和局部变量。
作用范围是当前函数内部。
3.dword ptr是一个内存访问修饰符,用来指定要访问的内存单元的大小和类型。
在本题中,dword ptr指示要访问的内存单元是一个 32 位的双字(double word)。
4.ret指令用于函数返回,它将弹出栈顶的返回地址,并跳转到该地址执行,从而实现函数的返回。
题目二:条件分支和循环请完成以下汇编代码的功能描述,并回答相应问题:mov eax, 10mov ecx, 0loop:cmp eax, 0je endadd ecx, eaxdec eaxjmp loopend:1.请描述以上汇编代码的功能。
2.eax和ecx分别用来存储什么数据?请解释mov eax, 10和mov ecx,0的作用。
3.cmp eax, 0和je end的作用是什么?24.dec eax是什么意思?5.jmp loop的作用是什么?解答:1.以上汇编代码的功能是计算从 10 累加到 1 的结果,并将结果存储在ecx寄存器中。
2.eax用来存储循环计数器(初始值为 10),ecx用来存储累加结果。
计算机技术汇编语言试题含答案

计算机技术汇编语言试题含答案第一部分:选择题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 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。
2 编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。
3 将AX寄存器中的16位数分成4组,每组4位,然后把这四组数分别放在AL、BL、CL和DL中。
4试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否完全相同,若相同则显示‘MATCH’,若不相同则显示‘NO MATCH’。
5 编写程序,将一个包含有16个数据的数组M分成两个数组:正数数组P和负数数组N,并分别把这两个数组中数据的个数显示出来(以一位十六进制数形式显示)。
6 试编写一个汇编语言程序,求出首地址为DATA的100D字数组中的最小偶数,并把它存放在AX中。
7 试编写一个汇编语言程序,要求从键盘接收一个四位的16进制数,并在终端上显示与它等值的二进制数。
8设有一段英文,其字符变量名为ENG,并以$字符结束。
试编写一程序,查对单词SUN在该文中的出现次数9 从键盘输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示出计数结果。
10 在STRING到STRING+99单元中存放着一个字符串,试编制一个程序测试该字符串中是否存在数字’0’-’9’,如有则把CL的第5位置1,否则将该位置0。
11在首地址为TABLE的数组中按递增次序存放着100H个16位补码数,试编写一个程序把出现次数最多的数及其出现次数分别存放于AX和CX中。
12 数据段中已定义了一个有n个字数据的数组M,试编写一程序求出M中绝对值最大的数,把它放在数据段的M+2n单元中,并将该数的偏移地址存放在M+2(n+1)单元中。
13 在首地址为DATA的字数组中存放着100H个16位补码数,试编写一个程序求出它们的平均值放在AX寄存器中;并求出数组中有多少个数小于此平均值,将结果放在BX寄存器中。
14 把0~100D之间的30个数存入以GRADE为首地址的30字数组中,GRADE+i表示学号为i+1的学生的成绩。
汇编语言上机习题 (2)

汇编语言上机习题0:键盘输入字单元number的16进制数值,统计结果存放在变量one中,并且输入one的内容。
查询1的个数1 不用串操作指令,把字符串string1的内容传送到字符串string2,字符长度为count。
2试编写一程序,要求能从键盘接收一个个位数N,然后响铃N次(响铃的ASCII 码为07)。
3 把AX中存放的16位二进制数K看作是8个二进制的"四分之一字节"。
试编写一程序片段,要求数一下值为3(即11B)的四分之一字节数,并将该数在终端上显示出来。
BEGIN: MOV DL, 0 ;计数初始值MOV CX, 8COMPARE: TEST AX, 03H ;是数03吗?JNZ NOEQUAL ;不是,转走INC DL ;是,计数NOEQUAL: ROR AX, 1 ;准备判断下一个数ROR AX, 1LOOP COMPAREADD DL, ‘0’;将计数值转换为ASCII码MOV AH, 2 ;进行显示INT 21HSTOP: RET4 有一个首地址为MEM的100D字数组,试编制程序删除数组中所有为零的项,并将后续项向前压缩,最后将数组的剩余部分补上零。
DSEG SEGMENTMEM DW 100 DUP (?)DSEG ENDS;--------------------------------------------------------------------------CSEG SEGMENTMAIN PROC FARASSUME CS: CSEG, DS: DSEGSTART: PUSH DS ;设置返回DOSSUB AX, AXPUSH AXMOV AX, DSEGMOV DS, AX ;给DS赋值BEGIN: MOV SI, (100-1)*2 ;(SI)指向MEM的末元素的首地址MOV BX, -2 ;地址指针的初值MOV CX, 100COMP: ADD BX, 2CMP MEM [BX], 0JZ CONSLOOP COMPJMP FINISH ;比较完了,已无0则结束CONS: MOV DI, BXCONS1: CMP DI, SI ;到了最后单元码?JAE NOMOVMOV AX, MEM [DI+2] ;后面的元素向前移位MOV MEM [DI], AXADD DI, 2JMP CONS1NOMOV: MOV WORD PTR [SI], 0 ;最后单元补0LOOP COMPFINISH: RETMAIN ENDPCSEG ENDS ;以上定义代码段;--------------------------------------------------------------------------END START5 在STRING到STRING+99单元中存放着一个字符串,试编制一程序测试该字符串中是否存在数字。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言上机练习考题(2009-01-23 20:54:37)标签:汇编语言考题教育分类:汇编语言程序设计键盘连续输入≤20个ASCII字符,如果是大写字母A~Z之间的字符,请将它们转换成相应的小写字符;若为其它字符,均转换为ASCII字符“SP”(20H)。
例如:输入:31H('1'),32H('2'),61H('a'),41H('A'),42H('B')...输出:20H('SP'),20H('SP'),20H('SP'),61H('a'),62H('b')...要求:要有输入、输出提示信息各占一行。
如下图所示:DATAS SEGMENTINPUT DB 'Please Input',0DH,0AH,'$'OUPUT DB 'Output',0DH,0AH,'$'BUF DB 21DB ?DB 21 dup(?)DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AX;----主程序代码段----LEA DX,INPUTMOV AH,9INT 21HLEA DX,BUFMOV AH,10INT 21HCALL CRLFLEA DX,OUPUTMOV AH,9INT 21HMOV BX,1MOV CL,BUF[BX] MOV CH,0 AGAIN:INC BXMOV DL,BUF[BX] CMP DL,'A'JB NEXTCMP DL,'Z'JA NEXTADD DL,20HJMP DISP NEXT:MOV DL,20H DISP:MOV AH,2INT 21HLOOP AGAINMOV AH,4CHINT 21H;----子程序定义---- CRLF PROCMOV DL,0DHMOV AH,2INT 21HMOV DL,0AHMOV AH,2INT 21HRETCRLF ENDP;----子程序结束---- CODES ENDSEND START键盘连续输入≤20个字符,请将它们的ASCII码以16进制数的格式显示输出。
要求:要有输入、输出提示信息各占一行。
例如:输入:12aB3E4f...输出:31H,32H,61H,42H,33H,45H,34H,66H,...效果如下图所示:【解题答案】DATAS SEGMENTINPUT DB 'Please Input',0DH,0AH,'$'OUPUT DB 'Output',0DH,0AH,'$'BUF DB 21DB ?DB 21 dup(?)DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AX;----主程序代码段----LEA DX,INPUTMOV AH,9INT 21HLEA DX,BUFMOV AH,10INT 21HCALL CRLFLEA DX,OUPUTMOV AH,9INT 21HMOV BX,1MOV CL,BUF[BX]MOV CH,0AGAIN:PUSH CXMOV CL,4INC BXMOV DL,BUF[BX]SHR DL,CLADD DL,30HMOV AH,2INT 21HMOV DL,BUF[BX]AND DL,0FHADD DL,30HMOV AH,2INT 21HCALL HDHPOP CXLOOP AGAINMOV AH,4CHINT 21H;----16进制'H,'子程序定义---- HDH PROCMOV DL,'H'MOV AH,2INT 21HMOV DL,','MOV AH,2INT 21HRETHDH ENDP;----换行回车子程序定义----CRLF PROCMOV DL,0DHMOV AH,2INT 21HMOV DL,0AHMOV AH,2INT 21HRETCRLF ENDP;----子程序结束----CODES ENDSEND START键盘连续输入≤20个ASCII字符,如果是小写字母a~z之间的字符,请将它们转换成相应的大写字符;若为其它字符,则不作转换。
并统计键盘输入的原20个ASCII字符中字符为“a”的个数。
最后,将转换的结果按输入顺序显示输出,之后显示原20个ASCII字符中字符为“a”的个数(按十进制数显示)。
要求:要有输入、输出提示信息各占一行。
例如:输入:31H('1')32H('2')61H('a')41H('A')42H('B')...输出:30H('1'),32H('2'),41H('A'),41H('A'),42H('B')...十进制数表示的“a”的个数效果如下图所示:【解题答案】DATAS SEGMENTINPUT DB 'Please Input:',0DH,0AH,'$' OUPUT DB 'Output:',0DH,0AH,'$'BUF DB 21DB ?DB 21 dup(?)DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AX;----主程序代码段----LEA DX,INPUTMOV AH,9INT 21HLEA DX,BUFMOV AH,10INT 21HCALL CRLFLEA DX,OUPUTMOV AH,9INT 21HMOV BL,0MOV SI,1MOV CL,BUF[SI]MOV CH,0AGAIN:INC SIMOV DL,BUF[SI]CMP DL,'a'JZ NUMBJB NEXTCMP DL,'z'JA NEXTJMP CONVERNUMB:INC BLCONVER:SUB DL,20HNEXT:MOV AH,2INT 21HLOOP AGAINCALL DISPMOV AH,4CHINT 21H;----回车换行子程序---- CRLF PROCMOV DL,0DHMOV AH,2INT 21HMOV DL,0AHMOV AH,2INT 21HRETCRLF ENDP;----显示BL数据子程序---- DISP PROCMOV AL,BLMOV AH,0MOV BH,10DIV BHMOV BH,AHMOV DL,ALADD DL,30HMOV AH,2INT 21HMOV DL,BHADD DL,30HMOV AH,2INT 21HRETDISP ENDP;----子程序定义结束----CODES ENDSEND START键盘连续输入≤20个ASCII字符,需要对它们进行加密,其方法为:某个字符的十六进制数用高4位X1和低4位X2表示的话,如果X1大于等于X2,则X2=X1-X2;否则X1=X2-X1。
最后,将加密后的结果按按十六进制数显示输出。
要求:要有输入、输出提示信息各占一行。
例如:输入:41H('A')46H('F')...输出:43H,26H...效果如下图所示:【解题答案】DATAS SEGMENTINPUT DB 'Please Input:',0DH,0AH,'$'OUPUT DB 'Output:',0DH,0AH,'$'BUF DB 21DB ?DB 21 dup(?)DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AX;----主程序代码段----LEA DX,INPUTMOV AH,9INT 21HLEA DX,BUFMOV AH,10INT 21HCALL CRLFLEA DX,OUPUTMOV AH,9INT 21HMOV BL,0MOV SI,1MOV CL,BUF[SI]MOV CH,0AGAIN:PUSH CXMOV CL,4INC SIMOV DH,BUF[SI]SHR DH,CLMOV DL,BUF[SI]AND DL,0FHCMP DH,DLJB NEXTSUB DL,DHNEG DLJMP DISPLAYNEXT:SUB DH,DLNEG DHDISPLAY:CALL DISPPOP CXLOOP AGAINMOV AH,4CHINT 21H;----回车换行子程序----CRLF PROCMOV DL,0DHMOV AH,2INT 21HMOV DL,0AHMOV AH,2INT 21HRETCRLF ENDP;----显示DH,DL,数据子程序---- DISP PROCPUSH DXMOV DL,DHADD DL,30HCMP DL,3AHJB NEXT1ADD DL,7HNEXT1:MOV AH,2INT 21HPOP DXADD DL,30HCMP DL,3AHJB NEXT2ADD DL,7HNEXT2:MOV AH,2INT 21HMOV DL,'H'MOV AH,2INT 21HMOV DL,','MOV AH,2INT 21HRETDISP ENDP;----子程序定义结束---- CODES ENDSEND START。