当前位置:文档之家› CPU与汇编上机考试题目及代码

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

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

目录

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

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

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

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

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

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

7、现有一组字符串为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、............................. 键盘输入一个十进制数(字类型),以十六进制的形式输出。

22

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

24

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

25

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

27

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

29

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

31

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

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

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

36

20、键盘输入下列两组十进制数,求其和,并将结果显示在屏幕上38

21、键盘输入一串二进制数1ah ,7ch,0bah,3ah,45h,63h 求其和,并将结果显示在屏幕上。 (40)

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

显示出这三类统计的结果。 (42)

23、编写程序,将十个字的有符号数中最大、最小值求出,并在显示器上输出。45 24、................................................................................. 键盘输入10 个字节数(无符号数),求出最大、最小值,并在显示器上输出。. (48)

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

26、在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、.................................................. 将两个磁盘文件合并成一个新的文件。

72

33、将一磁盘文件‘ 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 3

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

DATAS SEGMENT

BUF DB 30

DB ?

DB 30 DUP(?)

BUF1 DB 0DH,0AH,30 DUP(?) DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS

START:

MOV AX,DATAS

MOV DS,AX

LEA DX,BUF

MOV AH,0AH

INT 21H

LEA SI,BUF+2

LEA DI,BUF1

ADD DI,2

MOV BL,BUF+1

XOR BH,BH

ADD SI,BX

MOV CL,BUF+1

AGAIN:

DEC SI

MOV AL,[SI]

MOV [DI],AL

INC DI

LOOP AGAIN

MOV BYTE PTR[DI],'$'

LEA DX,BUF1

MOV AH,09H

INT 21H

MOV AH,4CH

INT 21H

CODES ENDS

END START

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

DATA SEGMENT

BUF DB 0FFH

DB ?

DB 0FFH DUP (?)

STROUT DB 0DH,0AH,'A =000'

DB 0DH,0AH,'SPACE=000','$' DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:

MOV AX,DATA

MOV DS,AX

LEA DX,BUF

MOV AH,0AH

INT 21H

LEA SI,BUF[2]

MOV CL,BUF[1]

XOR CH,CH

AGAIN:

CMP BYTE PTR[SI],'A'

JNE NOTA

CMP STROUT[10],'9'

JE ATEN

INC STROUT[10]

JMP NEXT

ATEN:

CMP STROUT[9],'9'

JE AHUN

MOV STROUT[10],'0'

INC STROUT[9]

JMP NEXT

AHUN:

MOV STROUT[10],'0'

MOV STROUT[9],'0'

INC STROUT[8]

JMP NEXT

NOTA:

CMP BYTE PTR[SI],' '

JNE NOTSPACE

CMP STROUT[21],'9'

JE SPACETEN

INC STROUT[21]

JMP NEXT

SPACETEN:

CMP STROUT[20],'9'

JE SPACEHUN

MOV STROUT[21],'0'

INC STROUT[20]

JMP NEXT

SPACEHUN:

MOV STROUT[21],'0'

MOV STROUT[20],'0'

INC STROUT[19] NOTSPACE:

NEXT:

INC SI

LOOP AGAIN

LEA DX,STROUT

MOV AH,09H

INT 21H

MOV AH,4CH

INT 21H

CODE ENDS

END START

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

BUF DB 50

DB ?

DB 50 DUP(?)

POSITION DB 1

NEWLINE DB 0AH,0DH,'$'

DATAS ENDS

STACKS SEGMENT

SAVE DW 100 DUP(?)

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS

START:

MOV AX,DATAS

MOV DS,AX

LEA DX,BUF

MOV AH,0AH

INT 21H

LEA SI,BUF+2

MOV CL,BUF+1

XOR CH,CH

NEXT:

MOV AL,[SI]

CMP AL,' '

JE DELATE

INC POSITION

INC SI

DEC CX

CMP CX,0

JNE NEXT

JMP OUTPUT

DELATE:

PUSH SI

PUSH CX

PUSH AX

MOV AX,SI

INC AX

MOV DI,AX

MOV AL,POSITION

MOV CL,BUF+1

SUB CL,AL

XOR CH,CH

AGAIN:

MOV AL,[DI]

MOV [SI],AL

INC SI

INC DI

LOOP AGAIN

POP AX

POP CX

POP SI

DEC CX

JMP NEXT

OUTPUT:

MOV AL,'$'

MOV [SI],AL

LEA DX,NEWLINE

MOV AH,09H

INT 21H

LEA DX,BUF+2

MOV AH,09H

INT 21H

MOV AH,4CH

INT 21H

CODES ENDS

END START

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

BUF DB 50

DB ?

DB 50 DUP(?)

DATAS ENDS

STACKS SEGMENT

SAVE DB 100 DUP(?)

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

MOV AX,DATAS

MOV DS,AX

MOV AX,STACKS

MOV SS,AX

LEA DX,BUF

MOV AH,0AH

INT 21H

LEA SI,BUF+2

MOV CL,BUF+1

XOR CH,CH NEXT:

MOV AL,[SI]

CMP AL,'A'

JE MOVE

INC SI

DEC CX

CMP CX,0

JNE NEXT

JMP OUTPUT MOVE:

PUSH SI

PUSH CX

MOV BX,SI

LEA SI,BUF+2

MOV AL,BUF+1

XOR AH,AH

ADD SI,AX

MOV AX,SI

INC AX

MOV DI,AX

DEC AX

SUB AX,BX

MOV CX,AX AGAIN:

MOV AL,[SI]

MOV [DI],AL

DEC SI

DEC DI

LOOP AGAIN

POP CX

POP SI

JMP TIHUAN TIHUAN:

MOV AL,'C'

MOV [SI],AL

MOV [SI+1],AL

INC BUF+1

INC SI

INC SI

DEC CX

CMP CX,0

JNE NEXT

JMP OUTPUT OUTPUT:

MOV AL,'$'

MOV [SI],AL

MOV DL,0AH

MOV AH,02H

INT 21H

MOV DL,0DH

MOV AH,02H

INT 21H

相关主题
文本预览
相关文档 最新文档