好文档 - 专业文书写作范文服务资料分享网站

微机原理及应用习题库硬件应用设计题汇编语言程序设计题

天下 分享 时间: 加入收藏 我要投稿 点赞

微机原理及应用 汇编语言程序设计 第32讲~第38讲 0.8 0.8 15

假设有一字节型数组ARRAY,编写完整的汇编语言程序求该数组中负数的个数。其中,在该数组的第一个字节存放的是数组中所包含的数据的个数,第二个字节用来存放结果,即数组中负数的个数,数组中的第三个字节开始存放的是数组中的数据。

1. 写出编程思想; 2. 编写完整的源程序。

1. 编程思想

为统计数组中负数的个数,需要逐个判断数组中的每个数据,然后将所有数据中凡是符号位为1的数据的个数累加起来,便是数组中所包含的负数的个数。

2.完整的源程序

STACK SEGMENT STACK DB 256 DUP(?) STACK ENDS DATA SEGMENT

ARRAY DB 200 DUP(?) DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX LEA DI,ARRAY MOV SI,DI MOV CL,[DI] XOR CH,CH MOV BL,CH INC DI INC DI

AGAIN:TEST BYTE PTR[DI],80H JZ POSI INC BL POSI: INC DI

LOOP AGAIN MOV [SI]+1,BL MOV AH,4CH INT 21H CODE ENDS

END START

微机原理及应用 汇编语言程序设计 第32讲~第38讲 0.8 0.8 15

编一个完整的汇编语言程序,完成从键盘输入一个字符,若输入的是1字符,则在屏幕上显示你的英文名字;若输入的是2字符,则在屏幕上显示你的学号。若输入的不是1或者2字符,则重新输入。

STACK SEGMENT STACK DB 256 DUP(?) STACK ENDS DATA SEGMENT

STRING1 DB ‘DO YOU WANT TO INPUT STRING?(Y/N):$’ CRLF DB 0DH,0AH,’$’

STRING2 DB ‘PLEASE INPUT STRING.’,0DH,0AH,’$’ NAME DB ‘ZHANG SAN.’ ,0DH,0AH,’$’ NUMBER DB ‘020701053.’ ,0DH,0AH,’$’ DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX

LEA DX,STRING1 MOV AH,09H INT 21H

MOV AH,01H INT 21H

CMP AL,’Y’ JE INPUT CMP AL,’y’ JNE DONE INPUT: LEA DX,CRLF MOV AH,09H INT 21H

LEA DX,STRING2 MOV AH,09H INT 21H

AGAIN: MOV AH,01H INT 21H CMP AL,’1’ JE DISPNAME CMP AL,’2’

JE DISPNUMBER

JMP AGAIN

DISPNAME: LEA DX,NAME MOV AH,09H INT 21H JMP DONE

DISPNUMBER:LEA DX,NUMBER MOV AH,09H INT 21H

DONE: MOV AH,4CH INT 21H CODE ENDS

END START

微机原理及应用 汇编语言程序设计 第32讲~第38讲 0.8 0.8 15

假设有一字节型数组ARRAY,编写完整的汇编语言程序求该数组中小于80H的数的个数。其中,在该数组的第一个字节存放的是数组中所包含的数据的个数,第二个字节用来存放结果,数组中的第三个字节开始存放的是数组中的数据。

1. 写出编程思想; 2. 编写完整的源程序。

1.编程思想

将数组中的每个数逐个与80H比较,根据大小关系方可统计出数组中小于80H的数的个数 2.完整的源程序

STACK SEGMENT STACK DB 256 DUP(?) STACK ENDS DATA SEGMENT

ARRAY DB 200 DUP(?) DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX LEA DI,ARRAY MOV SI,DI MOV CL,[DI] XOR CH,CH MOV BL,CH INC DI

INC DI

AGAIN:CMP BYTE PTR[DI],80H JAE L1 INC BL L1: INC DI

LOOP AGAIN MOV [SI]+1,BL MOV AH,4CH INT 21H CODE ENDS

END START

微机原理及应用 汇编语言程序设计 第32讲~第38讲 0.8 0.8 15

在存储器DATABUF以下连续的单元存放着由字符0~ 9或A~ F组成的一串字符(字符个数自定义或用其它方法求解),试编写完整的8086汇编语言程序,将其转换成数字存回原处。 (如某单元的字符为‘1’,即31H,就转换成01H;为‘A’, 即41H,就转换成0AH)

1. 写出编程思想; 2. 编写完整的源程序。

1.编程思想

将存储器DATABUF以下连续的单元中的每个数与39H(1字符的ASCLL码)比较,若该数小于等于39H,则将该数减去30H,否则将该数减去37H,其结果就是该字符对应的数字。 2. 完整的源程序

STACK SEGMENT STACK DB 256 DUP(?) STACK ENDS DATA SEGMENT

DATABUF DB ‘1234ABCDdcsa56’ COUNT EQU $-DATABUF DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX

MOV SI,OFFSET DATABUF MOV CX,COUNT NEXT: MOV AL,[SI] CMP AL,39H JBE L1

SUB AL,7 L1: SUB AL,30H MOV [SI],AL INC SI

LOOP NEXT MOV AH,4CH INT 21H CODE ENDS

END START

微机原理及应用 汇编语言程序设计 第32讲~第38讲 0.8 0.8 15

在当前数据段,偏移地址为DATAB开始的顺序80个单元中,存放着某班80个同学某门课考试的成绩,编写程序统计高于等于90分,80分—89分,70分—79分,60分—69分,低于60分的人数各为多少,将结果放在同一数据段、偏移地址为BTRX开始的顺序单元中。

1. 写出编程思想。 2. 编写完整的源程序。

1. 编程思想

将偏移地址为DATAB开始的顺序80个单元中的数分别与90、80、70、60比较,根据比较的大小关系就可统计出高于等于90分,80分—89分,70分—79分,60分—69分,低于60分的人数。

2. 完整的源程序

STACK SEGMENT STACK DB 256 DUP(?) STACK ENDS DATA SEGMENT

DATAB DB 80 DUP(?) BTRX DB 5 DUP(00H) DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX

MOV SI,OFFSET DATAB MOV DI,OFFSET BTRX XOR BX,BX XOR DX,DX MOV CX,80 NEXT: MOV AL,[SI]

微机原理及应用习题库硬件应用设计题汇编语言程序设计题

微机原理及应用汇编语言程序设计第32讲~第38讲0.80.815假设有一字节型数组ARRAY,编写完整的汇编语言程序求该数组中负数的个数。其中,在该数组的第一个字节存放的是数组中所包含的数据的个数,第二个字节用来存放结果,即数组中负数的个数,数组中的第三个字节开始存放的是数组中的数据。1.写出编程思想;2.编写完整的源程序。
推荐度:
点击下载文档文档为doc格式
300wf5ffy10vngk58yua7wp9920czo00zuo
领取福利

微信扫码领取福利

微信扫码分享