《上机实验报告.pdf》由会员分享,可在线阅读,更多相关《上机实验报告.pdf(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微机原理与接口技术实验报告 实验 汇编实验 专业:电力系统自动化 班级:电力 1203 学号:0911 姓名:李国杰 预习报告成绩 实验成绩:机位号:试验一:数据块传送 1 将数据段中 2000H 单元开始存放的的 10 个数(8 位数)传送到 3000H 开始的 10 个字节中。源程序:DATAS SEGMENT ;此处输入数据段代码 ORG 2000H DATA1 DB 1,2,3,4,5,6,7,8,9,10 ORG 3000H DATA2 DB 10 DUP(0)DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT
2、 ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV SI,2000H MOV DI,3000H MOV CX,10 NEXT:MOV AL,SI MOV DI,AL INC DI INC SI DEC CX JNZ NEXT MOV AH,4CH INT 21H CODES ENDS END START 结果展示:2 将数据段中 2000H 单元开始存放的 10 个数(16 位数)传送到 3000H 开始到的 10 个字节中。3 源程序:DATAS SEGMENT ;此处输入数据段代码
3、ORG 2000H DATA1 DW 1,2,3,4,5,6,7,8,9,10 ORG 3000H DATA2 DW 10 DUP(0)DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV SI,2000H MOV DI,3000H MOV CX,10 NEXT:MOV AL,SI MOV DI,AL INC DI INC SI DEC CX JNZ NEXT MOV
4、 AH,4CH INT 21H CODES ENDS END START 结果展示:4 将数据 DATA1 中的 10 个字节数据传送到数据段 DATA2 中 5 源程序:DATAS SEGMENT ;此处输入数据段代码 DATA1 DB 1,2,3,4,5,6,7,8,9,10 DATA2 DB 10 DUP(0)DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV
5、 SI,OFFSET DATA1 MOV DI,OFFSET DATA2 MOV CX,10 NEXT:MOV AL,SI MOV DI,AL INC DI INC SI DEC CX JNZ NEXT MOV AH,4CH INT 21H CODES ENDS END START 结果展示:6 将数据段中 2000H 开始的 20 个数据传送到 2010H 开始的 20 个单元中。源程序:DATAS SEGMENT ;此处输入数据段代码 DATA1 DB 1,2,3,4,5,6,7,8,9,10 DATA2 DB 10 DUP(0)DATAS ENDS STACKS SEGMENT ;此处输
6、入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV SI,OFFSET DATA1 MOV DI,OFFSET DATA2 MOV CX,10 NEXT:MOV AL,SI MOV DI,AL INC DI INC SI DEC CX JNZ NEXT MOV AH,4CH INT 21H CODES ENDS END START 结果展示:实验二:查表 实验目的:熟悉实验环境;熟练掌握查表程序 1.已知 015 的平方值表
7、,查表求 X 的平方值,送到 Y 单元,用两种方法 2.方法一:3.源程序:DATAS SEGMENT ;此处输入数据段代码 TABLE DB 0,1,4,9,16,25,36,49,64,81 DB 100,121,144,169,196,225 DATA DB 4 RESULT DB DATAS ENDS STACKS SEGMENT PARA STACK ;此处输入堆栈段代码 DW 50 DUP(0)STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入
8、代码段代码 MOV AX,STACKS MOV SS,AX MOV BX,OFFSET TABLE MOV AH,0 MOV AL,DATA ADD BX,AX MOV AL,BX MOV RESULT,AL MOV AH,4CH INT 21H CODES ENDS END START 结果展示:方法二:源程序:结果展示:4.已知 0255 的平方值表,查表求 X 的平方值,送到 Y 单元 5.源程序:DATAS SEGMENT ;此处输入数据段代码 TABLE DW 0,1,4,9,16,25,36,49,64,81 DW 100,121,144,169,196,225 DATA DW 4
9、 RESULT DW DATAS ENDS STACKS SEGMENT PARA STACK ;此处输入堆栈段代码 DW 50 DUP(0)STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV AX,STACKS MOV SS,AX MOV BX,OFFSET TABLE MOV AX,DATA SHL AX,1 ADD BX,AX MOV AX,BX MOV RESULT,AX MOV AH,4CH INT 21H CODES ENDS
10、 END START 结果展示:实验三:计算 1.计算 1234F000H+H 的和 DATAS SEGMENT ;此处输入数据段代码 DATA1 DW 0F000H,1234H DATA2 DW 5000h,9876H RESULT DW 2 DUP()DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV AX,DATA1 ADD AX,DATA2 MOV BX,D
11、ATA1+2 ADC BX,DATA2+2 MOV RESULT,AX MOV RESULT+2,BX MOV AH,4CH INT 21H CODES ENDS END START 结果展示:2.计算 8 字节数据 788H 与 99AABBCCDDEEFF00H 的和 源程序:DATAS SEGMENT ;此处输入数据段代码 DATA1 DW 7788H,5566H,3344H,1122H DATA2 DW 0FF00H,0DDEEH,0BBCCH,99AAH RESULT DW 4 DUP()DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS
12、 CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV AX,DATA1 ADD AX,DATA2 MOV BX,DATA1+2 ADC BX,DATA2+2 MOV CX,DATA1+4 ADC CX,DATA2+4 MOV DX,DATA1+6 ADC DX,DATA2+6 MOV RESULT,AX MOV RESULT+2,BX MOV RESULT+4,CX MOV RESULT+6,DX MOV AH,4CH INT 21H CODES ENDS EN
13、D START 结果展示:3.计算 8 字节的 BCD 码十进制数 788H 与 H 的和 源程序:DATAS SEGMENT ;此处输入数据段代码 ORG 1000H DATA1 DB 88H,77H,66H,55H,44H,33H,22H,11H DATA2 DB 22H,33H,44H,55H,66H,77H,88H,99H ORG 3000H DATA3 DB 0H DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,
14、DATAS MOV DS,AX ;此处输入代码段代码 LEA SI,DATA1 LEA DI,DATA2 LEA BX,DATA3 MOV CX,8 NEXT:MOV AL,SI ADC AL,DI DAA MOV BX,AL INC SI INC DI INC BX DEC CX JNZ NEXT MOV AH,4CH INT 21H CODES ENDS END START 结果展示:4.计算 10 个字节数据的和 源程序:DATAS SEGMENT ;此处输入数据段代码 ORG 1000H DATA1 DB 99H,88H,77H,66H,55H,44H,33H,22H,11H,00H
15、DATA2 DB 00H,11H,22H,33H,44H,55H,66H,77H,88H,99H ORG 3000H DATA3 DB 0H DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 LEA SI,DATA1 LEA DI,DATA2 LEA BX,DATA3 MOV CX,10 NEXT:MOV AL,SI ADC AL,DI MOV BX,AL INC SI
16、INC DI INC BX DEC CX JNZ NEXT MOV AH,4CH INT 21H CODES ENDS END START 结果展示:5.计算 10 个字数据的和 源程序:DATAS SEGMENT ;此处输入数据段代码 ORG 2000H DATA1 DB 20 DUP(0)DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 LEA SI,DATA1 MO
17、V AL,0 MOV BL,1 MOV CL,10 NEXT:ADD AL,BL INC BL DEC CL JNZ NEXT MOV SI,AL MOV AH,4CH INT 21H CODES ENDS END START 结果展示:实验四:计算表达式的值 1.计算表达式 Z=(X-Y)*7)/(Y+2)的值,已知 X=10,Y=5 源程序:DATAS SEGMENT ;此处输入数据段代码 ORG 2000H X DW 10 Y DW 5 Z DW DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME C
18、S:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV DX,X SUB DX,Y ;DX=X-Y MOV AX,7 MUL DX ;AX=(X-Y)*7 ADD Y,2 ;Y=Y+2 DIV Y MOV Z,AX SUB Y,2 MOV AH,4CH INT 21H CODES ENDS END START 结果展示:实验五:找最大数,最小数 1.找最大、最小数 1 找出 2040H 单元和 2041H 单元的大数,送 2042H 单元(数据自己定义)源程序:DATAS SEGMENT ;此处输入数据段代码
19、 ORG 2040H DATA1 DB 1,2 DATA2 DB 10 DUP(0)DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV BX,2040H MOV AL,BX INC BX CMP AL,BX JAE NEXT MOV AL,BX NEXT:MOV BX,2042H MOV BX,AL MOV AH,4CH INT 21H CODES ENDS END
20、 START 结果展示:2.找出 10 个数(8 位数)里的最大数(数据自己定义)源程序:DATAS SEGMENT ;此处输入数据段代码 ORG 2000H DATA1 DB 1,2,3,4,5,6,7,8,9,10 MAX DB DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV BX,2000H MOV AL,BX MOV CX,10 NEXT1:INC BX
21、 CMP AL,BX JAE NEXT2 MOV AL,BX NEXT2:DEC CX JNZ NEXT1 MOV BX,AL MOV AH,4CH INT 21H CODES ENDS END START 结果展示:3.找出 10 个数(8 位数)里的最小数(数据自己定义)源程序:DATAS SEGMENT ;此处输入数据段代码 ORG 2000H DATA1 DB 1,2,3,4,5,6,7,8,9,10 MAX DB DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATA
22、S,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV BX,2000H MOV AL,BX MOV CX,9 NEXT1:INC BX CMP AL,BX JBE NEXT2 MOV AL,BX NEXT2:DEC CX JNZ NEXT1 MOV MAX,AL MOV AH,4CH INT 21H CODES ENDS END START 结果展示:4.找出 10 个数(16 位数)里的最大数(数据自己定义)源程序:DATAS SEGMENT ;此处输入数据段代码 ORG 2000H DATA1 DW 1,2,3,4,5,6,7,8,
23、9,10 MAX DW DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV BX,2000H MOV AX,BX MOV CX,9 NEXT1:INC BX INC BX CMP AX,BX JAE NEXT2 MOV AX,BX NEXT2:DEC CX JNZ NEXT1 MOV MAX,AX MOV AH,4CH INT 21H CODES ENDS END
24、START 结果展示:5.找出 10 个数(16 位数)里的最小数(数据自己定义)源程序:DATAS SEGMENT ;此处输入数据段代码 ORG 2000H DATA1 DW 1,2,3,4,5,6,7,8,9,10 MAX DW DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV BX,2000H MOV AX,BX MOV CX,9 NEXT1:INC BX
25、INC BX CMP AX,BX JBE NEXT2 MOV AX,BX NEXT2:DEC CX JNZ NEXT1 MOV MAX,AX MOV AH,4CH INT 21H CODES ENDS END START 结果展示:实验六:统计正数、负数个数 1.找出 10 个数(8 位数)里的正数个数(数据自己定义)源程序:DATAS SEGMENT ;此处输入数据段代码 TABLE DB 1,-2,3,-4,5,-6,7,-8,9,-10 NUM DB DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME
26、 CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 LEA SI,TABLE MOV DX,0H MOV CX,0AH AGAIN:MOV AL,SI INC SI MOV BX,0 CMP AL,BL JG NEXT INC DX NEXT:DEC CX JNZ AGAIN LEA SI,NUM MOV SI,DX MOV AH,4CH INT 21H CODES ENDS END START 结果展示:2.找出 10 个数(8 位数)里的负数个数(数据自己定义)源程序:DATAS SEGMENT ;此处输
27、入数据段代码 TABLE DB 1,-2,3,-4,5,-6,7,-8,9,-10 NUM DB DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 LEA SI,TABLE MOV DX,0H MOV CX,0AH AGAIN:MOV AL,SI INC SI MOV BX,0 CMP BL,AL JG NEXT INC DX NEXT:DEC CX JNZ AGAIN
28、LEA SI,NUM MOV SI,DX MOV AH,4CH INT 21H CODES ENDS END START 结果展示:3.找出 10 个数(16 位数)里的正数个数(数据自己定义)源程序:DATAS SEGMENT ;此处输入数据段代码 TABLE DW 1,-2,3,-4,5,-6,7,-8,9,-10 NUM DB DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入
29、代码段代码 LEA SI,TABLE MOV DX,0H MOV CX,0AH AGAIN:MOV AX,SI INC SI MOV BX,0 CMP BX,AX JG NEXT INC DX NEXT:DEC CX JNZ AGAIN LEA SI,NUM MOV SI,DX MOV AH,4CH INT 21H CODES ENDS END START 结果展示:4.找出 10 个数(16 位数)里的负数个数(数据自己定义)源程序:DATAS SEGMENT ;此处输入数据段代码 TABLE DW 1,-2,3,-4,5,-6,7,-8,9,-10 NUM DB DATAS ENDS ST
30、ACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 LEA SI,TABLE MOV DX,0H MOV CX,0AH AGAIN:MOV AX,SI INC SI MOV BX,0 CMP AX,BX JG NEXT INC DX NEXT:DEC CX JNZ AGAIN LEA SI,NUM MOV SI,DX MOV AH,4CH INT 21H CODES ENDS END START 结
31、果展示:实验七:1.比较数据段 DS 与数据段 ES 中的 10 个字节的数据是否一致 源程序:DATAS SEGMENT ;此处输入数据段代码 DATA1 DB 0,1,2,3,4,5,6,7,8,9 DATA2 DB 0,1,2,3,4,5,6,7,8,9 RESULT DB DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 LEA SI,DATA1 LEA DI,D
32、ATA2 MOV CX,0AH MOV DX,1H NEXT:MOV AX,SI MOV BX,DI CMP AX,BX JZ AGAIN MOV DX,0 AGAIN:INC SI INC DI DEC CX JNZ NEXT LEA SI,RESULT MOV SI,DX MOV AH,4CH INT 21H CODES ENDS END START 结果展示:2.比较数据段 DS 与数据段 ES 中的 10 个字节的数据是否一致 源程序:DATAS SEGMENT ;此处输入数据段代码 DATA1 DW 0,1,2,3,4,5,6,7,8,9 DATA2 DW 0,1,2,3,4,5,6
33、,7,8,9 RESULT DB DATAS ENDS STACKS SEGMENT 1 表示相同 ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 LEA SI,DATA1 LEA DI,DATA2 MOV CX,0AH MOV DX,1H NEXT:MOV AX,SI MOV BX,DI CMP AX,BX JZ AGAIN MOV DX,0 AGAIN:INC SI INC DI DEC CX JNZ NEXT LE
34、A SI,RESULT MOV SI,DX MOV AH,4CH INT 21H CODES ENDS END START 结果展示:实验八:逻辑运算与移位 1.将数据段中 4000H 单元的内容拆开,高位送 4001H 低位,低位送 4002H 低位,4001H、4002H 的高位清零,一般用于把数据送显示缓冲区时使用。源程序:DATAS SEGMENT ;此处输入数据段代码 ORG 4000H DATA DB 89H DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS
35、,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV SI,4000H MOV AL,SI AND AL,0FH MOV SI+2,AL MOV BL,SI SUB BL,AL 1 表示相同 MOV CL,4 SHR BL,CL MOV SI+1,BL MOV AH,4CH INT 21H CODES ENDS END START 结果展示:2.将 4000H、4001H 单元的低位送 4002H 单元的高、低位,一般用于将缓冲区的数据取出拼成一个字节。源程序:DATAS SEGMENT ;此处输入数据段代码 ORG 4000H DATA
36、 DB 89H,67H DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV SI,4000H MOV AL,SI AND AL,0FH MOV CL,4 SHL AL,CL MOV BL,SI+1 AND BL,0FH ADD AL,BL MOV SI+2,AL MOV AH,4CH INT 21H CODES ENDS END START 结果展示:实验九:输入输
37、出 1、在显示器上输出字符串HELLO!源程序:DATAS SEGMENT ;此处输入数据段代码 STRING DB HELLO!DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 LEA BX,STRING MOV CX,6 LPP:MOV AH,2 MOV DL,BX INC BX INT 21H LOOP LPP MOV AH,4CH INT 21H CODES EN
38、DS END START 结果展示:2、从键盘输入一组字符串,存入到 BUFFER 数据区(自己定义)中。源程序:DATAS SEGMENT ;此处输入数据段代码 STRING DB 10,0,10 DUP()DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 LEA DX,STRING MOV AH,0AH INT 21H MOV CL,STRING+1 XOR CH,C
39、H MOV BX,DX MOV AH,4CH INT 21H CODES ENDS END START 结果展示:3、将内存单元存放的 BCD 码 25H 在显示器上输出(即输出字符25)。源程序:DATAS SEGMENT ;此处输入数据段代码 DATA DB 25H DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 LEA BX,DATA MOV AL,BX AND
40、AL,0FH ADD AL,30H MOV BX+2,AL MOV AL,BX AND AL,0F0H MOV CL,4 SHR AL,CL ADD AL,30H MOV BX+1,AL MOV CX,2 LPP:MOV AH,2 MOV DL,BX+1 INC BX INT 21H LOOP LPP MOV AH,4CH INT 21H CODES ENDS END START 结果展示:4、将内存单元存放的十进制数 25 从显示器上输出(即输出字符25)。源程序:DATAS SEGMENT ;此处输入数据段代码 DATA DB 25 DATAS ENDS STACKS SEGMENT ;此
41、处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 LEA BX,DATA MOV AX,BX MOV DL,0AH DIV DL ADD AL,30H ADD AH,30H MOV BX+1,AL MOV BX+2,AH LPP:MOV AH,2 MOV DL,BX+1 INC BX INT 21H LOOP LPP MOV AH,4CH INT 21H CODES ENDS END START 结果展示:5、从键盘输入 10
42、 个个位数字(09 之间的任意数字),并存储到数据区 INPUT 中。源程序:DATAS SEGMENT ;此处输入数据段代码 INPUT DB 10 DUP()DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 LEA BX,INPUT MOV CX,0AH NEXT:MOV AH,1H INT 21H SUB AL,30H MOV BX,AL INC BX DEC CX
43、 JNZ NEXT MOV AH,4CH INT 21H CODES ENDS END START 结果展示:6、将数据段中的 10 个个位数数据从显示器上输出。源程序:DATAS SEGMENT ;此处输入数据段代码 INPUT DB 0,1,2,3,4,5,6,7,8,9 DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 LEA BX,INPUT MOV CX,0AH
44、 NEXT:MOV AL,BX ADD AL,30H MOV DL,AL MOV AH,2 INT 21H INC BX DEC CX JNZ NEXT MOV AH,4CH INT 21H CODES ENDS END START 结果展示:7、输入任意个字符存到 BUFFER 数据区(自己定义),输入时以回车作为结束标志。源程序:DATAS SEGMENT ;此处输入数据段代码 BUFFER DB 100,0,100 DUP()DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:
45、DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 NEXT:LEA BX,BUFFER MOV AH,0AH INT 21H MOV AH,4CH INT 21H CODES ENDS END START 结果展示:实验十、子程序 编写 8 位数求和子程序,并调用它完成 10 个数的求和程序 源程序:DATAS SEGMENT ;此处输入数据段代码 DATA DB 0,1,2,3,4,5,6,7,8,9 RESULT DB DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 LEA SI,DATA MOV AL,SI MOV CX,0AH NEXT:INC SI MOV BL,SI CALL FAR PTR SUM DEC CX JNZ NEXT LEA DI,RESULT MOV DI,AL MOV AH,4CH INT 21H SUM PROC NEAR ADD AL,BL RET SUM ENDP CODES ENDS END START 结果展示:
限制150内