CPU与汇编上机考试题目及代码

合集下载

汇编语言试题 (2)

汇编语言试题 (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用来存储累加结果。

汇编语言考试复习题及答案

汇编语言考试复习题及答案

一、单项选择题(从下列每题的四个选择中选择一个正确的,填入答题纸的相应位置。

每小题2分,共30分)1.下列指令有语法错误的是__________。

A) PUSH AL B) ADDC AX,50HC) MOV [SI],[DI] D) JMP WORD PTR[BX+5]见书:35页,PUSH2.执行下列程序段后,(AX)= ________。

TAB DW 1,2,3,4,5,6ENTRY EQU 3MOV BX, OFFSET TABADD BX,ENTRYMOV AX,[BX]A) 0003H B) 0300H C) 0400H D) 0004H3.NC指令不影响____B_____标志。

A) OF B) CF C) ZF D) SF4.执行下列指令后:STR1 DW ‘AB’STR2 DB 16 DUP(?)CNT EQU $ -STR1MOV CX,CNTMOV AX,STR1HLT寄存器CL的值是________,寄存器AX的值是________。

①A) 10H B) 12H C) 0EH D) 0FH②A) 00ABH B) 00BAH C) 4142H D) 4241H5.汇编语言源程序经汇编后不能直接生成文件。

A).OBJ B).LST C).EXE D).CRF6.8086 CPU在基址加变址的寻址方式中,已知BX=2000H,SI=1234H,则指令“MOV AX,[BX+SI+2]”的源操作在中。

(A)数据段中偏移量为3236H的字节(B)数据段中偏移量为3234H的字节(C)附加段中偏移量为3236H的字节(D)附加段中偏移量为3234H的字节(A)19,20 (B)20,无右孩子(C)无左孩子,20 (D)无左孩子,无右孩子7.执行下面的程序段后,DA T1单元的值是。

DA T1 DB 12H,34HDA T2 DB 56H,78HMOV AX,WORD PTR DAT1CMP AX,WORD PTR DAT2JA DONEMOV BX,WORD PTR DAT2MOV WORD PTR DAT2,AXMOV WORD PTR DAT1,BXDONE:HLTA)12H B)34H C)56H D)78H8.下列指令中,正确的一条是。

汇编第3次上机题

汇编第3次上机题

2013《汇编语言程序设计》第3次上机题
一、目的
(1) 加深对一些常用的汇编指令的理解;
(2) 掌握基本的程序设计方法;
(3) 进一步熟悉TD的使用。

二、题目
1、《80X86汇编语言程序设计》教材中 P96的 3.11 题。

要求:(1)请事先指出程序运行结束后,显示器显示的内容。

(不需要抄程序)(2)若将NUM的定义改成如下形式:NUM DB 35
显示的结果是什么?
(3)若将NUM的定义改成如下形式:NUM DB 59
显示的结果是什么?
(4)若将NUM的定义改成如下形式:NUM DB 75
显示的结果是什么?
(5)修改该程序,使之能够以16进制形式显示NUM单元中的内容。

(写出修改部分即可)
2、设在一个缓冲区BUF1中存放了一个串“123GOOD”, 将其以相反顺序拷贝到另一
个缓冲区BUF2中。

要求:用TD观察程序执行前后的数据区,并记录下来。

3、输入一个十进制数字串(假定是无符号的),以四位十六进制的形式输出该串对
应的值。

例如:Input: 123↙
Output: 007BH
要求:(1) 画出程序流程图,给出寄存器、存储单元的分配方法;
(2) 给出完整的程序清单,有必要的注释。

知识要点:(1) 如何将一个字符串转换成数值?(串数转换)
(2) 如何将一个数值转换成某一进制的字符串?。

汇编语言编程上机练习题.

汇编语言编程上机练习题.
输入n,退回DOS。
6、 用“笑脸”符画一条斜线,座标位置从 ( 0 , 0 )到( 24 , 24 ),设置为 8025 的字 符方式,笑脸的ASCII码为02,用ESC键退 回DOS。 7、 编写一程序,在屏幕上显示两条水平 的有颜色的线,一条在第 0 行,一条在第 199行,屏幕底色为蓝色,并设计按ESC键 使程序可以退出返回DOS。 8 、编写一程序,在屏幕上显示两条垂直线, 一条在第10列,另一条在第300列,屏幕底 色为兰色,线为红色,并设计 按ESC键退 出返回到DOS。
9、 假设10个学生某课程成绩为60,75,96,68,87,53, 96 , 46 , 92 , 33 ,(学生成绩可以自己输入)请编写 一段程序,统计该成绩中小于 60 分的人数, 60 - 89 分 的人数和大于等于90 分的人数,并将结果显示在屏幕 上,格式为: Input score of 10 students : The rezult is: <60: ; 60-89: ; 90: Try again(y/n)? 输入n, 退回DOS。 10 、试编写一程序,要求根据用户键入的月份数,在屏 幕上显示该月的英文缩写名,键入 ESC 键,则退出返 回到DOS。 屏幕上显示:month? ;提示输入月份数 5 ;键入5 MAY ;显示5月的英文缩写 month?
编程时先假设 x = -8,y = 9
3、 用键盘分别输入3位十进制数和1位十进制数, 相乘之,并输出结果。编写程序, 要求在屏幕 上显示如下: Input 3 bits Decimal Number is : Input 1 bits Decimal Number is : Result is: Try again (y/n)? 输入n,退回DOS。 4、 从键盘输入字符串(N≤30,回车为结束符), 编一程序,按字母、数字及其它字符分类统计 个数,最后显示出字符总数和三类字符的个数。 屏幕显示如下:

汇编语言试题精选及答案

汇编语言试题精选及答案

汇编语言试题精选及答案汇编语言试题精选1. 计算机内表示机器数的常用编码有(补码 )。

2. 已知[-Y]补=7001H,则Y=(8Fff)H。

注意:[-Y]补=7001 ==》[-Y]反=7000 ==》[-Y]=0FFF ==》Y=8FFFH3. 已知[X-Y]补=7001H,[X+Y]补=0001H,则[2X]补=(7002)H。

4. 典型的计算机结构包括( CPU,存储器,I/O设备),通过(总线 )连接在一起。

5. 在1M字节的存储器中,每个存储单元都有一个唯一的(20 )位地址,称为该物理单元的物理地址。

6. 指令中所用到的操作数可存放于( 指令中),(存储器)或(寄存器 )中。

7. 对于指令CMP AX, BX;当AX, BX为带符号数时,若AX>BX,则执行后标志位SF(0 ),OF=(0)。

注意:CMP 指令做减法,AX与BX相运算(AX-BX),当前者大SF和OF 都为0。

SF是无符号数相减的溢处,OF 是有符号数相减的溢出8. 存贮器的地址区域(0~3FFH )为中断向量区。

9. DT伪指令中定义的每个操作数占有(10 )字节。

10. 循环程序可由(初始化 ),(循环体 ),( 循环控制)三部分组成。

11. 子程序的变量传送方式有(寄存器 ),(存储器变量 ),(地址表),( 堆栈)等。

12. ORG 100H X=2 REPT 1 DD X X=X+1 ENDM 执行前(DS)=02345H,汇编后生成的代码为: (DD 2 ) (X=3 )注:1确定次数重复伪指令REPT.ENDM例13.8缓冲区初始化。

X=0REPT 3X=X+1DB XENDM汇编后:+ DB 1+ DB 2+ DB 3这里还要注意的是IRP X,〈1,2,3,4,5〉。

ENDM 和IRPC X,〈1,2,3,4〉。

ENDM 的用法两者是取尖括号中的元素来取代变量X,循环的次数有括号中元素个数决定,唯一区别是,前者是一变量进行取代,后者是一字符进行取代。

汇编语言试卷及答案

汇编语言试卷及答案

汇编语言试卷及答案第一部分:选择题1.下列哪个寄存器是通用寄存器?A. EAX B. ESP C. EIP D. ECX 答案:D2.在8086中,IP指向的是哪个段的开始地址?A. 数据段B. 附加段C. 代码段D. 堆栈段答案:C3.以下哪个指令可以将AL寄存器中的值移动到BL寄存器中?A. MOV AL,BL B. MOVBL,AL C. MOV AH,BL D. MOV BL,AH 答案:B4.下列哪个指令可以将AX寄存器中的值右移一位?A. SHR AX,1 B. SHL AX,1 C. RORAX,1 D. ROL AX,1 答案:A5.以下哪个指令可以将DX:AX中的值除以BX中的值?A. DIV BX B. MUL BX C. SUB BX D.ADD BX 答案:A第二部分:填空题1.8086CPU有____个16位通用寄存器,分别为AX、BX、CX、DX、SI、DI、BP、SP。

答案:82.在8086中,IP指向的是____段的开始地址。

答案:代码段3.指令MOV AX,BX中,AX为____,BX为____。

答案:目的操作数,源操作数4.指令ADD AX,4中,4为____。

答案:操作数5.在8086CPU中,用于保存当前程序的返回地址的寄存器是____。

答案:IP第三部分:简答题1.简述8086CPU的寻址方式。

答案:8086CPU的寻址方式有直接寻址、寄存器间接寻址、基址变址寻址、相对基址变址寻址、相对基址加变址寻址和堆栈寻址。

2.简述寄存器在汇编语言中的作用。

答案:寄存器在汇编语言中用于存储数据、进行运算和地址计算等。

8086CPU有8个16位通用寄存器,用于存储数据。

其中AX、BX、CX和DX可以单独使用或组合使用,SI和DI通常用于存储指针地址,BP和SP 用于操作堆栈。

3.简述如何进行数据传送操作。

答案:数据传送操作可以使用MOV指令。

MOV指令的语法为:MOV 目的操作数,源操作数。

2012_汇编第3次上机题

2012_汇编第3次上机题

第三次上机题一、目的1. 掌握基本的程序设计方法;2. 掌握较大规模的程序调试方法;3. 熟悉双重循环程序设计的方法;4.熟悉常用的机器指令5. 熟悉串输入、串输出、字符输入的系统功能调用方法;6. 掌握子程序设计的方法;二、题目1、输入一个十进制数字串(假定是无符号的),以四位十六进制的形式输出该串对应的值。

例如:Input: 123↙Output: 007BH要求:(1) 画出程序流程图,给出寄存器、存储单元的分配方法;(2) 给出完整的程序清单,有必要的注释。

知识要点:(1) 如何输入一个字符串?(2) 如何将一个字符串转换成数值?(串数转换)(3) 如何输出一个提示符串?(4) 如何将一个数值转换成某一进制的字符串?2、输入一个十进制数字串(假定是有符号的,可带正负号),以四位十六进制的形式输出该串对应的值。

例如:Input: -123↙Output: FF85H注:先做第1题。

然后再第1题的基础上修改。

若本题做出来了,则不用交第1题的程序。

要求同1.3、以BUF为首址的字存储区中存储了N个有符号数。

请先对该组数进行排序,按照按从大到小的顺序以十进制形式输出排序后的结果。

例如:BUF DW 123, -50, 0, -100, 300N = ($ - BUF) / 2输出结果:Sort result:300 123 0 -50 -100要求:(1) 画出程序流程图,给出寄存器、存储单元的分配方法,子程序的功能、入口参数及出口参数(对于各个子程序,也要说明其寄存器、存储单元的分配情况,在流程图中也列出相应子程序的名称)。

(2)“排序”使用子程序实现。

(3) “数值数据到串的转换”用子程序实现。

要求该子程序只实现一个数值数据的转换。

(4) 输出时,数字串之间的间距为2个空格。

(5) 观察执行CALL指令时,堆栈的变化,以及IP、CS的变化。

(6) 掌握跟踪进入子程序的方法。

说明:(1) 写下必要的设计文档可以帮组我们理清思路,减少写程序时的错误;(2) 同学们可以相互讨论算法思想,理清思路;(3) 建议分模块写,分模块调,这样更容易确定错误的位置,增强信心;例如,在运行完排序程序段后,设置断点,观察数据区中的排序结果是否正确。

汇编考试测试卷(最新整理)

汇编考试测试卷(最新整理)

一、选择题1.CPU发出地访问存储器地地址是(A).A.物理地址B.偏移地址C.逻辑地址D.段地址2.将高级语言地程序翻译成机器码程序地实用程序是(A).A.编译程序B.汇编程序C.解释程序D.目标程序3.DEC BYTE PTR[BX]中地操作数地数据类型是(C).A.字B.双字C.字节D.四字4.在下列语句中,BUFFER称为(B).BUFFER DB 01H,0AHA.符号B.变量C.助记符D.标号5.串操作指令中,源串操作数地段地址一定在(C)寄存器中.A. CSB. SSC. DSD. ES6.使计算机执行某种操作地命令是(B).A.伪指令B.指令C.标号D.助记符7.将数据5618H存放在存储单元中地伪指令是(B).A. DATA1 DW 1856HB. DATA1 DB 18H,56HC. DATA1 EQU 5618HD. DATA1 DB 18H,00H,56H,00H8.若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=(A).A. 1400HB. 77F8HC. 0000HD. 0FFFFH9.计算机处理问题中会碰到大量地字符、符号,对此必须采用统一地二进制编码.目前,微机中普遍采用地是(C)码.A. BCD码B.二进制码C.ASCII码D.十六进制码10.用指令地助记符、符号地址、标号和伪指令、宏指令以及规定地格式书写程序地语言称为(A).A.汇编语言B.高级语言C.机器语言D.低级语言1.指令JMP FAR PTR DONE属于(C). A.段内转移直接寻址B.段内转移间接寻址C.段间转移直接寻址D.段间转移间接寻址2.执行下面指令序列后,结果是(A).MOV AL,82HCBWA.AX=0FF82HB. AX=8082HC. AX=0082HD. AX=0F82H3. 物理地址(10FF0H )=10H,(10FF1H )=20H,(10FF2H )=30H,从地址10FF1H中取一个字地内容是(B).A.1020HB.3020HC.2030HD.2010H4. 将AX 清零,下列指令错误地是(C).A.SUB AX,AXB.XOR AX,AXC.OR AX,00HD.AND AX,00H5.设SP初值为2000H,执行指令“PUSH AX”后,SP地值是(D).A.1FFFHB.1998HC.2002HD.1FFEH6.条件转移指令JB产生程序转移地条件是(D).A.CF=1B.CF=0C.CF=1和ZF=1D.CF=1和ZF=07.有指令MOV AX, 1234H,指令中地立即数1234H是存储在(B).A.数据段B.代码段C.附加段D.堆栈段8.要在程序中定义缓冲区BUF,保留9个字节存储空间地语句是(C).A.BUF DW 9B.BUF DB 9C.BUF DB 9 DUP(?)D.BUF DW 9 DUP(?)9.TEST AH,30H指令地功能与(A/B)指令功能相类似.A.ANDB.CMPC.SUBD.OR10.有定义NUM DB '12345' ,汇编后,NUM占有(B)字节存储单元.A.1B.5C.6D.711、MOV SP,3210HPUSH AX执行上述指令序列后,SP寄存器地值是(B).A.3211HB.320EHC.320FHD.3212H12、BUF DW 10H DUP(3 DUP(2,10H),3,5)语句汇编后,为变量BUF分配地存储单元字节数是(A ).A.80HB.100HC.124D.19213.对于下列程序段:AGAIN:MOV AL,[SI]MOV ES:[DI],ALINC SIINC DILOOP AGAIN也可用(A)指令完成同样地功能.A.REP MOVSB B.REP LODSBC.REP STOSBD.REPE SCASB14.下面指令序列执行后完成地运算,正确地算术表达式应是(D).MOV AL,BYTE PTR XSHL AL,1DEC ALMOV BYTE PTR Y,ALA.Y=X*2+1B.X=Y*2+1C.X=Y*2-1D.Y=X*2-115.把汇编语言源程序翻译成目标代码地程序是(C).A.编译程序 B. 解释程序 C. 汇编程序 D.连接程序16.下列指令中,不影响PSW地指令是(A).A. MOVB. TESTC. SALD. CLD17. 已定义数据段DATA SEGMENTORG 0213HDA1 DB 15H,34H,55HADR DW DA1DATA ENDS能使AX中数据为偶数地语句是(C).A. MOV AX, WORD PTR DA1B. MOV AL, DA1+2C. MOV AL, BYTE PTR ADR+1D. MOV AX, WORD PTR DA1+218. 如代数据段名为DATA_SEG,它地起始地址为20A00H,对数据段寄存器DS赋值段地址值地方法是(D).A. MOV DS,20A0HB. ASSUME DS:DATA_SEGC. DATA_SEG SEGMENTD. MOV AX,DATA_SEGMOV DS,AX19. 设SP=1FFEH,执行下列指令后,SP寄存器地值是(D).POPFPUSH AXA. 2000HB. 2002HC. 1FFCHD. 1FFEH20. 下面有语法错误地指令是(D).A. ADD AL,AHB. ADD [BX+3],ALC. ADD AH,[DI]D. ADD [BP+2],DA1;(DA1是变量名)二、填空题1.在8086/8088汇编语言中,有五条串操作指令,其中搜索字符串指令地助记符是(SCAS).2.通常所说地计算机系统包括________和________两大部分.(硬件、软件)3.8086/8088存储器分四个段,这四个段地段名所对应地段寄存器分别是________、________、________、________.(CS、DS、ES、SS)4.现有AX=2000H,BX=1200H,DS=3000H,DI=0002H,(31200H)=50H,(31201H)=02H,(31202H)=40H,请写出下列各条指令独立执行完后有关寄存器及存储单元地内容,并指出标志位ZF、CF地值.A. ADD AX,1200H;问AX=________H,ZF=________.B. SUB AX,BX;问AX=_______ H,ZF=________.C. MOV AX,[BX];问AX=________H,CF=________.(A.3200H, 0B.0E00H,0 C.0250H ,不影响)5.设DS=2200H,BX=1000H,SI=0100H,偏移量D=0A2B1H,试计算出下列各种寻址方式下地有效地址,填入括号中.A.使用D地直接寻址(0A2B1H).B.使用BX地寄存器间接寻址(1000H).C.使用BX和D地寄存器相对寻址(0B2B1H).D.使用BX、SI和D地相对基址变址寻址(0B3B1H).E.使用BX、SI地基址变址寻址(1100H).三、简答题1.程序在数据段中定义地数组如下:ARRAY DB ‘YES IS’DB 20┇DB ‘DO NOT’请指出下列指令是否正确?若不正确,错在哪里?A. MOV BX,OFFSET ARRAYMOV AX,[BX+8]B. MOV AX,ARRAYC. MOV BX,2MOV SI,3MOV AX,ARRAY[BX][SI]D. MOV BX,2*2MOV SI,3MOV AX,OFFSET ARRAY[BX][SI]INC [AX]答:A. 正确B. 数据类型不匹配错C. 前两条指令正确,第三条数据类型不匹配D. 前两条正确,后两条不正确,在汇编过程中,OFFSET操作将得到变量地偏移值,但对相对基址变址寻址方式形成地值在汇编指令时还是未知地,所以第三条指令不正确.第四条指令中,AX不能作为基址寄存器用.2. 如TABLE为数据段中0100单元地符号名,其中存放地内容为0FF00H,试问以下两条指令有什么区别?指令执行后,AX寄存器地内容是什么?MOV AX,TABLEMOV AX,OFFSET TABLE答:第一条指令传送地是0100H单元中地内容,AX=0FF00H第二条指令传送地是地址0100H,AX=0100H3. 对于下面地数据定义,三条MOV指令分别汇编成什么?(3分)TAB1 DW 10 DUP(?)TAB2 DB 10 DUP(?)TAB3 DB ‘1234’┇MOV AX,LENGTH TAB1MOV BL,LENGTH TAB2MOV CL,LENGTH TAB3答:MOV AX,10MOV BL,10MOV CL,14.分别指出下列指令中源操作数地寻址方式:A. MOV SI,100B. MOV CX,DATA[SI]C. MOV [SI],AXD. ADD AX,[BX][DI]E. POPF答: A.立即寻址B.寄存器相对寻址C.寄存器寻址D.基址加变址寻址E.寄存器寻址四、程序分析1.下列程序段完成什么工作?DAT1 DB 30 DUP(?)DAT2 DB 10 DUP(?)┇MOV CX,10MOV BX,20MOV SI,0MOV DI,0NEXT:MOV AL,DAT1[BX][SI]MOV DAT2[DI],ALINC SIINC DILOOP NEXT答:把DAT1+20存储单元开始地10个字节搬到DAT2开始地连续10个存储单元中.2.执行下列指令后,AX寄存器中地内容是什么?START DW 10H,20H,30H,40H,50HEE1 DW 3┇MOV BX,OFFSET STARTADD BX,EE1MOV AX,[BX]答:3000H3.试分析下面程序段地功能是什么?CMP AL,‘A’JC OTHERCMP AL,‘Z’+1JNC OTHERJMP LETTER┇OTHER:┇LETTER:┇答:判断AL地内容,若为‘A’~‘Z’地大写字母时,程序转LETTER处理,否则转OTHER 处理.4.下面程序段执行完以后,BX地内容是什么?MOV BX,00FFHAND BX,0FFFHOR BX,0F0FHXOR BX,00FFH答:0F00H5、现有如下程序段:DATA SEGMENTORG 0020HDA1 DW 12H,23HDA2 DB 11H,21HDA3 EQU 1234HDA4 EQU $-DA2DA5 DB 31H,32HDATA ENDS请回答:(1)该程序段已占有地存储字节数是多少?(2)符号名DA4地值是多少?符号名DA5地值是多少? 答:(1)该程序段已占有地存储字节数是8个字节.(2)符号名DA4地值为2,符号名DA5地值是0026H.6、现有如下程序段:BUF1 DB 41H,42H,43H,44H,45H,46HBUF2 DB 6 DUP(?)…MOV SI,OFFSET BUF1MOV DI,OFFSET BUF2MOV CX,6LOP:MOV AL,[SI]SUB AL,7AND AL,0FHMOV [DI],ALINC SIINC DILOOP LOP试回答(1)程序段执行后,BUF2开始地6个字节存储单元地内容是什么?(2)程序功能不变,AND AL,0FH指令可否用SUB AL,30H指令替代.答:(1)CMP AL,[BX](2)JNZ LOP17、DA1数据区中有50个字节数据,下面程序段将每个数据地低四位变反,高四位不变,并依次存入DA2数据区中.请将程序补充完整.MOV CX,50LEA SI,DA1LEA DI,DA2K1:MOV AL,[SI]___________MOV [DI],ALINC SIINC DIDEC CX___________答:(1)XOR AL,0FH(2)JNZ K1五、程序设计1.试编写出把DX、AX中地双字右移四位地程序段.答:程序段如下:MOV CL,04SHR AX,CLMOV BL,DLSHR DX,CLSHL BL,CLOR BL,AH2.定义一个数据区,它包含有23H,24H,25H和26H四个字符数据,把这个数据区复制20次,并显示出复制结果.答:程序如下:DATA SEGMENTDA1 DB 23H,24H,25H,26HDA2 DB 80 DUP(‘?’),‘$’DATE ENDSCODE SEGMENT┇CLDLEA DI,DA2MOV BX,20NEXT:LEA SI,DA1MOV CX,4REP MOVSBDEC BXJNZ NEXTMOV AH,09HLEA DX,DA2INT 21HRETCODE ENDS3.内存自BUF单元开始地缓冲区连续存放着100个学生地英文分数,编程序统计其中90~100,60~89,60以下者各有多少人?并把结果连续存放到自RESUT开始地单元中,(要求画出程序流程图,各段定义完整)答:程序如下:DATA SEGMENTBUF DB 40H,64H,51H,…RESUT DB 3 DUP(0)DATA ENDSCODE SEGMENTASSUME DS∶DATA,ES∶DATA,CS∶CODE MAIN PROC FARPUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXLEA SI,BUFMOV CX,100CLDAO:LODSBCMP AL,5AHJL L60INC [RESUT]JMP COML60: CMP AL,3CHJGE K8960INC [RESUT+1]JMP COMK8960: INC [RESUT+2]COM: LOOP AORETMAIN ENDPCODE ENDSEND4.设在内存单元SQTAB首址开始存放了0~10地平方数表.要求用直接查表法编一程序,求出A单元中给定数(<=10 )地平方值送B单元保存.答:程序如下:DATA SEGMENTSQTAB DB 0,1,4,9,16,25,36,49,64,81DB 100A DB 12B DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATAMAIN PROC FARSTART:PUSH DXXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV BX,OFFSET SQTABMOV AL,AXLATMOV B,ALRETMAIN ENDPCODE ENDSEND START5.A1单元开始定义了一长度为N地字符串,找出其中所有地小写字母并存放到以A2单元开始地存储区中.统计出小写字母地个数,存放到SL单元中.请编一完整地源程序.数据段如下:DATA SEGMENTA1 DB ‘……’N EQU $ -A1A2 DB N DUP(?)SL DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA MAIN PROC FARSTART: PUSH DXXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV BX,OFFSET A1MOV AL,0MOV CX,NNEXT:MOV DL,[BX] CMP DL,‘a’JB KCMP DL,‘z’JA KINC ALK:INC BXLOOP NEXT MOV SL,ALRETMAIN ENDPCODE ENDSEND START版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有This article includes some parts, including text, pictures, and design. Copyright is personal ownership.用户可将本文地内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律地规定,不得侵犯本网站及相关权利人地合法权利.除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人地书面许可,并支付报酬.Users may use the contents or services of this article for personal study, research or appreciation, and other non-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目地地合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任.Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall not misinterpret or modify the original intention of the content of this article, and shall bear legal liability such as copyright.。

《汇编语言》试题(试题库06)

《汇编语言》试题(试题库06)

《汇编语言程序设计》考试试卷班级姓名学号一、填空题(25分,每空1分)1、数x的真值-129,其原码表示为_________。

2、8086 CPU在进行I/O写操作时,M/IO和DT/R必须是_________和_________。

3、CPU中EU和BIU以_________方式工作、_________作业操作,减少了取指时间,提高了CPU工作效率。

4、设堆栈指针(SP)=2200H,此时若将AF、AX、BX、CX依次推入堆栈后,(SP)= _________。

5、条件转移指令JB LABEL1产生程序转移的条件是_________。

6、中断处理的一般过程包括:_________、_________、_________、_________、_________等五个过程。

7、在8086/8088系统中,存储器是分段的,每段最大长度是_________字节,段内偏移地址从________到_______。

8、用于控制字符操作地址增量方向的标志寄存器是________,表示加法结果溢出的标志寄存器是________,允许产生中断时,IF=_______。

9、一个8位的二进制整数,若采用补码表示,且由3个“1”和5个“0”组成,则其最小值为: _________(用十进制真值表示)10、某微机系统的存储器地址空间为A8000H—CFFFFH,若采用单片容量为16K×1位的SRAM 芯片,则系统存储容量为_________,组成该存储系统共需该类芯片_________个,整个系统应分为_________个芯片组。

11、DEBUG是为汇编语言设计的一种调试工具,它的命令有多种,命令D和命令U分别表示_________、_________,而表示执行并显示系统环境命令是_________。

二、计算题(8分,每小题4分)1、已知X=+100,Y=+200,用16位二进制补码减法来求 X-Y=?①、用十进制真值表示出结果,要求给出运算过程。

汇编上机考试题及答案

汇编上机考试题及答案

汇编上机考试题及答案;试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。

DATAS SEGMENT;此处输入数据段代码DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXabc:mov ah,1int 21hcmp al,&#39;a&#39; jb stopcmp al,&#39;z&#39; ja stopsub al,20hmov dl,almov ah,2int 21hjmp abcstop:retMOV AH,4CHINT 21HCODES ENDSEND START;编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,;再按顺序显示这三个字符。

DATAS SEGMENT;此处输入数据段代码DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXBEGIN: MOV AH, 1 ;从键盘输入一个字符的DOS调用INT 21HCMP AL, &#39;a&#39;;输入字符&lt;‘a’吗?JB STOPCMP AL, &#39;z&#39; ;输入字符&gt;‘z’吗?JA STOPDEC AL ;得到前导字符MOV DL, AL ;准备显示三个字符MOV CX, 3DISPLAY: MOV AH, 2 ;显示一个字符的DOS调用INT 21HINC DLLOOP DISPLAYSTOP: RETMOV AH,4CHINT 21HCODES ENDSEND START;将AX寄存器中的16位数分成4组,每组4位,然后把这四组数分别放在AL、BL、CL和DL中。

汇编语言考试题库及答案

汇编语言考试题库及答案

汇编语言考试题库及答案一、选择题1. 在汇编语言中,以下哪个指令用于将数据从内存加载到寄存器中?A. MOVB. ADDC. SUBD. MUL答案:A2. 假设寄存器AX的值为1234H,执行指令“AND AX, 0F0H”后,AX 的值是多少?A. 1230HB. 0F34HC. 0F30HD. 1234H答案:C二、填空题1. 在汇编语言中,________指令用于将立即数加载到寄存器中。

答案:MOV2. 寄存器EAX的高16位是_______。

答案:AX三、简答题1. 解释汇编语言中的“段”是什么概念?答案:在汇编语言中,“段”是内存管理的一个概念,用于将程序的不同部分(如代码、数据、堆栈)分隔开来。

每个段都是内存中的一个区域,它有一个段基址,程序中的地址由段基址和偏移量组合而成。

2. 描述汇编语言中循环结构的实现方式。

答案:循环结构在汇编语言中通常通过标签和跳转指令实现。

首先定义一个循环的开始标签,然后在循环体中执行需要重复的操作。

循环结束前使用条件跳转指令(如JE、JNE等)跳回循环开始的标签,直到满足跳出循环的条件。

四、编程题1. 编写一个汇编程序,实现将两个16位无符号数相加,并将结果存储在寄存器AX中。

答案:```MOV AX, 1234HMOV BX, 5678HADD AX, BX```上述程序首先将1234H加载到AX寄存器中,然后将5678H加载到BX寄存器中,最后使用ADD指令将BX中的值加到AX中,结果存储在AX寄存器中。

2. 编写一个汇编程序,实现将字符串"Hello, World!"存储在内存中。

答案:```.DATAString DB 'Hello, World!', 0```上述程序在数据段定义了一个字符串"Hello, World!",后面跟着一个空字符作为字符串的结束标记。

2014_汇编第2次上机题

2014_汇编第2次上机题

2014《汇编语言程序设计》第2次上机题一、目的(1) 加深对一些常用的汇编指令的理解;(2) 进一步熟悉TD的使用;(3) 进行简单的编程。

二、题目1、《80X86汇编语言程序设计》教材中 P45的 2.3题。

要求:(1) 分别记录执行到“MOV CX,10”和“INT 21H”之前的(BX), (BP),(SI),(DI)各是多少。

(2) 分别记录程序执行初期与退出之前数据段开始40个字节的内容,指出程序运行结果是否与设想的一致。

操作提示:使用TD.EXE调试程序时,应先单步执行程序开始的2条指令,实现对DS的赋值,再通过查看DS:0开始区域的内容,完成记录程序执行初期数据段内容的任务;然后,单步执行循环体中的各个语句,每执行一条语句,都应观察数据段中的内容以及相应寄存器的变化。

执行循环体两遍且正确理解了循环体语句的含义后,可在“MOV AH,4CH”处设置断点,然后直接执行到断点处,最终完成(2)和(3)的问题。

2、《80X86汇编语言程序设计》教材中 P45的 2.4题。

要求:(1) 实现的功能不变。

(2) 内存单元中数据的访问采用变址寻址方式。

(3) 记录程序执行到退出之前数据段开始40个字节的内容,检查程序运行结果是否与设想的一致。

操作提示:同第1个上机题3、编写程序设a和b是2个短整数(2个字节),c和d是2个字节型数据(1个字节)。

请编写一个完整的程序计算表达式:( (a + c) * d - 60 ) / b,并将结果(商和余数)保存到变量AA和BB中。

要求:用2组(a,b,c,d)的值:(2280h,1000h,80h,10h)、(100h,10h,80h,20h)去测试程序,查看result中的结果是否正确。

CPU指令及汇编练习题

CPU指令及汇编练习题

9、假如AL=20H,BL=10H,当执行CMP AL,BL 后,问:(1)AL,
BL中内容是两个无符号数,比较结果如何?影响哪几个标志位? (2)AL、BL中内容是两个有符号数,结果又如何,影响哪几个 标志位?
比较指令的执行结果影响状态标志位,常常与条件转移指令结合起来使 用,完成各种条件判断和相应的程序转移。例如: 1)若两个被比较的内容相等,则(ZF)=1; 2)当无符号数的较小数减较大数时,因不够减而产生借位,此时进位标志 CF置1; 3)当带符号数的较小数减较大数时,将得到负的结果,则符号标志SF置1; 4)带符号数相减如果结果溢出,则OF置1。 1)AL>BL, CF=0,ZF=0 2)AL>BL, SF=0,OF=0
7.1 汇语言的基本概念:机器语言,高级语言,汇编语言,汇编语言源
程序,汇编,汇编程序
7.2 汇编语言源程序的格式:分段结构(汇编语言源程序由若干段组成,
每个段以SEGMENT语句开始,以ENDS语句结束。整个源程序的结尾是END语 句);语句分类:指令/伪指令语句;语句的格式:[名字] 助记符 [操作数] [;注释] LOOP1: MOV AL,DATA2[SI] DATA1 DB 0F8H,60H 可以作为操作数的有常数、寄存器、标号、变量和表达式: 01011101B,0F2H, ‘ABCDEFG’;标号代表一条指令的符号地址,因此可以作为转移(无条件转移或 条件转移)、过程调用CALL以及循环控制LOOP指令的操作数;变量的类型属性有 DB、DW、DD。 MOV AX,DATA;表达式:算术运算符( +,−,*,/、MOD、 SHL、SHR):32 MOD 5,逻辑运算符: AND,OR,XOR和NOT, 24H AND 0FH;关系运算符:EQ,NE,LT,GT,LE,GE等, MOV AX,4 EQ 3,当关系 不成立(假)时,结果为0(全0);当关系成立(真)时,结果为0FFFFH(全1);分析运算 符: SEG、OFFSET 、TYPE 、 LENGTH和SIZE, MOV AX,SEG ARRAY, MOV DI,OFFSET DATA1, LENGTH 运算符可得到这个变量的个数。如果未用 DUP说明,则得到的结果总是1。

汇编语言试题及答案

汇编语言试题及答案

汇编语言试题及答案一、选择题1. 下列汇编指令中,用于加载立即数至寄存器的是:A. MOVB. ADDC. SUBD. XOR答案:A. MOV2. MOV指令中,源操作数与目的操作数的位数必须相同吗?A. 是B. 否答案:B. 否3. 下列指令中,用于从内存读取数据的是:A. MOVB. JMPC. ADDD. LEA答案:D. LEA4. 下列寻址方式中,可以直接给出操作数的地址的是:A. 直接寻址B. 间接寻址C. 寄存器寻址D. 寄存器间接寻址答案:A. 直接寻址5. CPU中的程序计数器(PC)用于保存:A. 下一条指令的地址B. 当前指令的地址C. 上一条指令的地址D. 中断服务程序的地址答案:A. 下一条指令的地址二、填空题1. 8086处理器的数据总线位数是_________。

答案:162. MOV AX, BX 汇编指令是将______的值复制到______。

答案:BX,AX3. 寻址方式LEA BX, [SI+DI]的含义是将_______与_______的和作为BX的值。

答案:SI,DI4. 8086处理器的寻址空间大小是_________。

答案:1MB5. 标志寄存器中的ZF标志位表示_________。

答案:零标志位,表示结果为零三、简答题1. 简述什么是汇编语言?汇编语言是一种底层的程序设计语言,通过使用助记符来代替具体的操作码,使得编写的代码易于阅读和理解。

汇编语言直接操作计算机硬件,与机器语言密切相关,最终会被翻译成机器语言运行在计算机上。

2. 什么是寄存器?寄存器是计算机内部用于存储数据和执行操作的高速存储器。

不同的计算机体系结构会有不同的寄存器数量和用途。

寄存器的访问速度非常快,因此在编写汇编语言代码时,经常使用寄存器来进行数据的操作和传递。

3. 请举例说明MOV指令的用法及其作用。

MOV指令用于将数据从一个位置复制到另一个位置。

它可以将立即数、寄存器或内存中的数据复制到目标寄存器或内存位置。

CPU语言程序编程与汇编考试题及答案(试卷二)

CPU语言程序编程与汇编考试题及答案(试卷二)

CPU语言程序编程与汇编考试题及答案(试卷二)一、简答题1、定义子程序时如何确定其属性?答:子程序属性的确定原则如下:(1)子程序和主程序在同一个代码段中,则子程序定义为NESR属性。

(2)子程序和主程序不在同一个代码段中,则子程序定义为FAR属性。

(3)主程序通常定义为FAR属性,这是因为主程序被看做DOS调用的一个子程序,以便执行完返回DOS。

2、伪指令语句与指令语句的区别是什么?3、子程序的参数传递有那几种方式及其各自的优缺点?4、试比较CALL指令和JMP指令。

5、8086/8088CPU由哪两部分组成?它们的主要功能是什么?6、中断处理程序的典型结构包括哪几部分?7、什么是中断矢量表?它有什么作用?8、CPU与外设问的数据传送方式有哪几种?它们各有什么特点?9、标志寄存器中有哪些状态标志和控制标志?它们每一位所表示的含义是什么?10、8086/8088的数据寻址方式有那几种?每种寻址方式各举一例(以源操作数为例)。

11、在指令系统中,段内、段间返回均为RET指令。

试回答:(1)执行段内返回RET指令时,执行的操作是:(2)执行段间返回RET指令时,执行的操作是:答:(1)(IP)←((SP),(SP)+1)。

(2)(IP)←((SP),(SP)+1)(CS)←((SP)+2,(SP)+3)。

12、系统功能调用的方法如何?举例说明。

13、分别说明下列两组指令中两条指令操作的相同点和不同点:(1)SUB AX,BX; CMP AX,BX;(2)AND CX,DX; TEST CX,DX;答:(1)相同点:都是做减法。

不同点:SUB指令将结果回送给目的操作数,CMP指令不回送给目的操作数。

(2)相同点:都是做与操作。

不同点:AND 指令将结果回送给目的操作数,TEST指令不将结果回送给目的操作数。

二、填空题1、数据定义如下X1 DB 10H,100,-1;X2 DW 10H,100,-1;X3 DD ?COUNT EQU X3-X1;变量COUNT的值是BL=7 ,其表示的意义是本程序段是可以的。

汇编考试题及答案

汇编考试题及答案

汇编考试题及答案一、选择题(每题2分,共20分)1. 以下哪个指令是汇编语言中的无条件跳转指令?A. JZB. JEC. JMPD. JC答案:C2. 在汇编语言中,哪个指令用于将数据从内存读取到寄存器中?A. MOVB. ADDC. SUBD. MUL答案:A3. 8086微处理器中,哪个寄存器用于存储指令指针?A. IPB. SPC. BPD. SI答案:A4. 汇编语言中,哪个指令用于将一个字节的数据与累加器中的值进行逻辑“与”操作?A. ANDB. ORC. XORD. NOT答案:A5. 在8086微处理器中,哪个指令用于将累加器的内容压入堆栈?A. PUSH AXB. POP AXD. RET答案:A6. 汇编语言中,哪个指令用于将一个字数据从寄存器移动到内存?A. MOV [BX], ALB. MOV AL, [BX]C. MOV AL, BLD. MOV [BX], BL答案:A7. 8086微处理器中,哪个指令用于将当前的CS和IP寄存器的值压入堆栈,然后跳转到指定的地址?A. CALLB. RETC. INTD. IRET8. 汇编语言中,哪个指令用于将一个字数据从内存移动到寄存器?A. MOV AL, [BX]B. MOV [BX], ALC. MOV AL, BLD. MOV BL, [BX]答案:A9. 在汇编语言中,哪个指令用于将一个寄存器的内容与另一个寄存器的内容进行逻辑“或”操作?A. ANDB. ORC. XORD. NOT答案:B10. 8086微处理器中,哪个指令用于从堆栈中弹出一个字数据到累加器?A. PUSH AXB. POP AXC. CALLD. RET答案:B二、填空题(每题2分,共20分)1. 汇编语言中的________指令用于将数据从寄存器移动到内存。

答案:MOV2. 8086微处理器中的________指令用于无条件跳转。

答案:JMP3. 在汇编语言中,________指令用于将一个字节的数据与累加器中的值进行逻辑“异或”操作。

汇编-上机-网页答案

汇编-上机-网页答案

第一次上机作业1.从键盘上接受一个字符,找出它的前导字符和后继字符,按序显示这三个字符。

寄存器分配:AL:暂存数据。

算法: 1、接受字符,存入AL。

2、(AL)→A。

3、(AL)自加1。

4、(AL)→A+1。

5、(AL)自加1。

6、(AL)→A+2。

7、‘$’→A+3。

8、输出以A为首地址的字符串。

代码:STACK SEGMENT STACKDB 100 DUP(?)STACK ENDSDATA SEGMENTB DB ‘PLEASE ENTER A CHARACTER:$’ ;定义变量B,以其为首地址依次存放提示字符串。

A DB 5 DUP(?) ;定义变量A,同时开辟连续5个字节空间。

DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATAMOV DS,AXLEA DX,BMOV AH,9INT 21HMOV DL,0DHMOV AH,2INT 21HMOV DL,0AHMOV AH,2INT 21HMOV AH,1INT 21HDEC ALMOV A,ALINC ALMOV A+1,ALINC ALMOV A+2,ALMOV A+3,'$'MOV AH,2INT 21HMOV DL,0DHMOV AH,2INT 21HLEA DX,AMOV AH,9INT 21HMOV AH,4CHINT 21HCODE ENDSEND START输出:PLEASE ENTER A CHARACTER:7(输入)678(显示)2.从键盘上接受一个数字字符,如不是,显示“not odd”,否则显示“odd”。

寄存器分配:AL:暂存数据。

算法: 1、接受字符,存入AL。

2、若AL<0,转到S3。

3、否则,若AL>0,转到S3。

4、否则,输出字符串“ODD”。

5、程序结束。

注:S3功能是输出字符串“NOT ODD”。

2012_汇编第4次上机题

2012_汇编第4次上机题

第四次上机题一、目的1.掌握串操作指令与掌握宏指令定义、调用方法2.掌握多模块程序设计方法3.掌握中断矢量表的概念以及中断处理程序设计方法4.了解Win32程序编写方法二、题目1.输入两个串,比较两个串是否相同,相同,则显示“equal”,否则显示“not equal”,并将第一个不相等的字符显示出来。

要求:(1) 串的比较使用串比较指令。

(2) 串的输入和输出使用宏指令。

2. 改编第三次上机的第3题。

输入一组有符号字数据。

对该组数进行排序,按照从大到小的顺序输出排序后的结果。

运行时:Please input numbers:123 0 -100 -50 +300 25 ↙Output Format (1: decimal; 2 :hex) : 1↙300 123 25 0 -50 -100要求:使用多模块,将各个子程序放在不同的模块中。

说明:(1) 输入的数字串以一个或者多个空格作为分隔符。

(2) 数字串前可有一个正号或负号(3) 对于非数字串,以及超过一个字大小的数字串应给出提示。

3. 直接运行调试工具(TD.EXE),从中断矢量表中直接找出中断类型码21H对应的中断处理程序的入口地址,然后加以验证(单步运行INT 21H,检查CS及IP 是否改变成了21H对应的入口地址)。

在调试工具下,找到中断矢量表区,计算int 21h对应的表项,取出它的入口地址;再跟踪执行INT 21H,观察CS及IP的值是否int 21h表项对应的四个字节的值。

4. 编制时钟显示程序。

要求每隔1s在屏幕右上角显示“年-月-日时:分:秒”,并将程序驻留在内存。

参照P222的例6.1;P224 的例 6.2。

注:在计算机系统中,对CMOS中数据的读写是通过两个I/O端口来实现的,其中,端口70H是一个字节的只写端口,用它来设置CMOS中的数据地址;而端口71H是用来读写端口70H设置的CMOS地址中的数据单元字节内容。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录1、请任意输入一个字符串,将该串倒序后在屏幕上显示。

(2)2、请任意输入一个字符串,统计其中空格和A 的个数,并将结果显示在屏幕上。

(3)3、请任意输入一个字符串,将其中的空格全部删除,并将结果显示在屏幕上。

(5)4、请任意输入一个字符串,将其中A换成CC,并将结果显示在屏幕上。

(6)5、请任意输入一个字符串,将其中大写字母换成小写字母,并将结果显示在屏幕上。

86、请任意输入一个字符串,将其中的英文字母全部删除,并将结果显示在屏幕上。

107、现有一组字符串为data,name,time,file,code,path,user,exit,quit,text ,请编写程序从键盘输入4个字符的字符串,若存在将其修改为disk, 并将结果在显示器上显示。

(11)8、现有一组字符串为ram,yes,red,the,get,for,and,key,not,may ,请编写程序将他们按ASCII 大小排序,并在显示器上显示。

(14)9、现有一组字符串为data,name,time,file,code,path,user,exit,quit,text ,请编写程序从键盘输入4个字符的字符串,若存在将其删除, 并在显示器上显示。

(16)10、现有一组字符串为data,name,time,file,code,path,user,exit,quit,text ,请编写程序将上述字符串排序(升序)并插入disk 使其人仍然有序, 并在显示器上显示。

(18)11、............................. 键盘输入一个十进制数(字类型),以十六进制的形式输出。

2212、............................... 键盘输入一个十进制数(字类型),以二进制的形式输出。

2413、............................. 键盘输入一个二进制数(字类型),以十六进制的形式输出。

2514、............................... 键盘输入一个二进制数(字类型),以十进制的形式输出。

2715、............................. 键盘输入一个十六进制数(字类型),以十进制的形式输出。

2916、............................. 键盘输入一个十六进制数(字类型),以二进制的形式输出。

3117、将一组有符号数中的负数求和,并统计负数的个数,并在屏幕上以十进制的形式显示结果。

(33)18、键盘输入十个数,分别统计0 到9,10 到99,100 以上的数的个数,并显示结果。

.3519、键盘输入两组数743216、527864 ,按BCD 码求和,并将结果显示在屏幕上。

3620、键盘输入下列两组十进制数,求其和,并将结果显示在屏幕上3821、键盘输入一串二进制数1ah ,7ch,0bah,3ah,45h,63h 求其和,并将结果显示在屏幕上。

(40)22、从键盘输入一串可显示字符(以回车符结束),并按字母、数字、空格分类计数,然后显示出这三类统计的结果。

(42)23、编写程序,将十个字的有符号数中最大、最小值求出,并在显示器上输出。

45 24、................................................................................. 键盘输入10 个字节数(无符号数),求出最大、最小值,并在显示器上输出。

. (48)25、一个有符号字数组以0 为结束标志,编程求这个数组的最大值、最小值、平均值。

5126、在BUFFER 中定义了的十个带符号字,将其中的负数变成绝对值,并以十进制方式输出。

(56)27、已知数组A 包含20 个互不相等的字型整数,数组B 包含30 个互不相等的字型整数,试编制一程序把在A中而不在B中出现的整数放于数组C中。

(58)28、已知数组A 包含20 个互不相等的字型整数,数组B 包含30 个互不相等的字型整数,试编制一程序把既在A中又在B中出现的数存放于数组C中。

(63)29、设有4 个学生参加5 门考试,请计算每个学生的平均成绩和每门课的平均分成绩,并在显示器上显示,输出格式如下: (67)Chg1 chg2 chg3 chg4 chg5 meam (67)S1 78 85 55 100 97 (67)S2 67 96 43 79 84 (67)S3 92 55 76 92 65 (67)S4 43 95 82 89 75 (67)Aver (67)不计小数。

(67)30、编程计算从2开始的N(N<50)个偶数之和(2 + 4 + 6+…),主程序从键盘输入整数N , 调用子程序求出N 个偶数之和,由主程序显示结果。

尝试分别使用以下 3 种方法编写完整程序。

70( 1 )利用寄存器传递参数 (70)(2)利用公共数据段变量传递参数 (70)(3)利用堆栈传递参数 (70)31、...................................................................... 多模块程序设计72(1)设计一个包括:键盘输入、显示、排序、转换、退出程序的主菜单。

(2)从键盘输入10 个字型带符号数。

(3)把10 个带符号十进制数转换成二进制数。

(4)把10个二进制数按从小到大顺序排列。

(5)把10 个带符号二进制数转换成十进制数。

(6)把最大数用十进制数的形式显示在屏幕上要求:(1)整个程序用四个模块组成:主菜单,排序子模块,转换子模块,其它。

(2)键盘输入与显示功能分别用宏指令实现。

(3)排序及转换功能分别用子程序实现。

(72)32、.................................................. 将两个磁盘文件合并成一个新的文件。

7233、将一磁盘文件‘ 1.TXT '读入内存2000:0000h 中,并将文件以反序形式(头尾对应字符互换)仍以相同路径存入磁盘中。

(74)34、在多模块设计中,主模块中调用内部模块BUF1,BUF2,BUF3,BUF4 。

主模块根据键盘输入的指令(如:A,B,C,D )调用上述对应的子程序,每个子程序的任务是显示其入口地址。

调用后继续等待调用,若输入ESC键(ASCII码为1BH )则结束程序的执行。

请编写完成该任务的程序。

(76)35、现有一控制程序共5 个工序,要求输入0-4 的序号,分别执行各工序的子程序,每个子程序的任务是显示其入口地址。

调用后继续等待调用,按回车则结束程序的执行。

(78)36、从键盘输入一个两位十进制数的月份,然后显示出相应的英文名,要求显示月份的功能用子程序实现。

80 37、现有一组参量按16位编码,各字段的长度如下:BIT1=6 ,BIT2=4 ,BIT3=3 ,BIT4=3 ,BIT1 位于高位,BIT4 位于低位。

设BIT1=52 ,BIT2=13 ,BIT3=5,BIT4=3 请用程序编码将这些字段编码组合成一个字,按二进制的形式在屏幕上输出。

................... 8 31、请任意输入一个字符串,将该串倒序后在屏幕上显示DATAS SEGMENTBUF DB 30DB ?DB 30 DUP(?)BUF1 DB 0DH,0AH,30 DUP(?) DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AXLEA DX,BUFMOV AH,0AHINT 21HLEA SI,BUF+2LEA DI,BUF1ADD DI,2MOV BL,BUF+1XOR BH,BHADD SI,BXMOV CL,BUF+1AGAIN:DEC SIMOV AL,[SI]MOV [DI],ALINC DILOOP AGAINMOV BYTE PTR[DI],'$'LEA DX,BUF1MOV AH,09HINT 21HMOV AH,4CHINT 21HCODES ENDSEND START2、请任意输入一个字符串,统计其中空格和 A 的个数,并将结果显示在屏幕上。

DATA SEGMENTBUF DB 0FFHDB ?DB 0FFH DUP (?)STROUT DB 0DH,0AH,'A =000'DB 0DH,0AH,'SPACE=000','$' DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX,DATAMOV DS,AXLEA DX,BUFMOV AH,0AHINT 21HLEA SI,BUF[2]MOV CL,BUF[1]XOR CH,CHAGAIN:CMP BYTE PTR[SI],'A'JNE NOTACMP STROUT[10],'9'JE ATENINC STROUT[10]JMP NEXTATEN:CMP STROUT[9],'9'JE AHUNMOV STROUT[10],'0'INC STROUT[9]JMP NEXTAHUN:MOV STROUT[10],'0'MOV STROUT[9],'0'INC STROUT[8]JMP NEXTNOTA:CMP BYTE PTR[SI],' 'JNE NOTSPACECMP STROUT[21],'9'JE SPACETENINC STROUT[21]JMP NEXTSPACETEN:CMP STROUT[20],'9'JE SPACEHUNMOV STROUT[21],'0'INC STROUT[20]JMP NEXTSPACEHUN:MOV STROUT[21],'0'MOV STROUT[20],'0'INC STROUT[19] NOTSPACE:NEXT:INC SILOOP AGAINLEA DX,STROUTMOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START3、请任意输入一个字符串,将其中的空格全部删除,并将结果显示在屏幕上DATAS SEGMENTBUF DB 50DB ?DB 50 DUP(?)POSITION DB 1NEWLINE DB 0AH,0DH,'$'DATAS ENDSSTACKS SEGMENTSAVE DW 100 DUP(?)STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AXLEA DX,BUFMOV AH,0AHINT 21HLEA SI,BUF+2MOV CL,BUF+1XOR CH,CHNEXT:MOV AL,[SI]CMP AL,' 'JE DELATEINC POSITIONINC SIDEC CXCMP CX,0JNE NEXTJMP OUTPUTDELATE:PUSH SIPUSH CXPUSH AXMOV AX,SIINC AXMOV DI,AXMOV AL,POSITIONMOV CL,BUF+1SUB CL,ALXOR CH,CHAGAIN:MOV AL,[DI]MOV [SI],ALINC SIINC DILOOP AGAINPOP AXPOP CXPOP SIDEC CXJMP NEXTOUTPUT:MOV AL,'$'MOV [SI],ALLEA DX,NEWLINEMOV AH,09HINT 21HLEA DX,BUF+2MOV AH,09HINT 21HMOV AH,4CHINT 21HCODES ENDSEND START4、请任意输入一个字符串,将其中A换成CC,并将结果显示在屏幕上DATAS SEGMENTBUF DB 50DB ?DB 50 DUP(?)DATAS ENDSSTACKS SEGMENTSAVE DB 100 DUP(?)STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV AX,STACKSMOV SS,AXLEA DX,BUFMOV AH,0AHINT 21HLEA SI,BUF+2XOR CH,CH NEXT:MOV AL,[SI]CMP AL,'A'JE MOVEINC SIDEC CXCMP CX,0JNE NEXTJMP OUTPUT MOVE:PUSH SIPUSH CXMOV BX,SILEA SI,BUF+2MOV AL,BUF+1XOR AH,AHADD SI,AXMOV AX,SIINC AXMOV DI,AXDEC AXSUB AX,BXMOV CX,AX AGAIN:MOV AL,[SI]MOV [DI],ALDEC SIDEC DILOOP AGAINPOP CXPOP SIJMP TIHUAN TIHUAN:MOV AL,'C'MOV [SI],ALMOV [SI+1],ALINC BUF+1INC SIINC SIDEC CXCMP CX,0JNE NEXTJMP OUTPUT OUTPUT:MOV AL,'$'MOV [SI],ALMOV DL,0AHMOV AH,02HINT 21HMOV DL,0DHMOV AH,02HINT 21HMOV AH,09HINT 21HMOV AH,4CHINT 21HCODES ENDSEND START5、请任意输入一个字符串,将其中大写字母换成小写字母,并将结果显示在屏DATAS SEGMENTBUF DB 30 DB ?DB 30 DUP(?)DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AXLEA DX,BUFMOV AH,0AHINT 21HLEA SI,BUF+2MOV CL,BUF+1NEXT:MOV AL,[SI]CMP AL,'A'JB CONTINUECMP AL,'Z'JBE TIHUANJMP CONTINUETIHUAN:ADD AL,20HMOV [SI],ALCONTINUE:INC SIDEC CXCMP CX,0JZ OUTPUTJMP NEXTOUTPUT:MOV AL,'$'MOV [SI],ALMOV DL,0AHMOV AH,02HINT 21HMOV DL,0DHMOV AH,02HINT 21HLEA DX,BUF+2MOV AH,09HINT 21HMOV AH,4CHINT 21HCODES ENDSEND START6、请任意输入一个字符串,将其中的英文字母全部删除,并将结果显示在屏幕上。

相关文档
最新文档