华北电力大学汇编作业答案(2017版)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3. 运算前内存分布:
4. 运算后内存分布:
5. 连续运行 G= 0000 0024 6. 查看结果使用命令:-D 140E:0000 7. 记录结果: 数据为:12H,12H,23H,15H,55H,77H,66H,11H,17H,54H 结果为:020AH 8. 存在问题及体会
4.1 计算表达式 Z ((X Y) *7) /(Y 2) 的值,已知 X=10,Y=5。
1. 流程图:
2. 源程序(要求有完整的数据段、代码段): DATAS SEGMENT
;此处输入数据段代码 X DB 10 Y DB 5 Z DB 0 DATAS ENDS
CODES SEGMENT ASSUME CS:CODES,DS:DATAS
START: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV AL,X SUB AL,Y MOV BL,7 MUL BL MOV DL,Y ADD DL,2 DIV DL MOV Z,AL
1. 流程图:
2. 源程序(要求有完整的数据段、代码段):
DATAS SEGMENT ;此处输入数据段代码
TABLE DB 0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225 X DB 10 Y DB ? DATAS ENDS
STACKS SEGMENT ;此处输入堆栈段代码
数据 1 为:1122334455667788H 数据 2 为:9988776655443322H 数据和为:101111111111111101H
8. 存在问题及体会
3.3 计算 10 个字数据的和(数据自己定义)。
1. 流程图:
2. 源程序(要求有完整的数据段、代码段):
DATAS SEGMENT ;此处输入数据段代码 X DW 12H,12H,23H,15H,55H,77H,66H,11H,17H,54H Y DW 2 DUP(0)
LEA BX,TABLE MOV AX,X ADD BX,AX ADD BX,AX MOV AX,[BX] MOV Y,AX
MOV AH,4CH INT 21H CODES ENDS END START
3. 运算前内存分布:
4. 运算后内存分布:
5.连续运行 G= 0000 0030 6.查看结果使用命令:-D 0770:0000
5.连续运行 G= 0000 0021
6.查看结果使用命令: -D 141B:0000 7.记录结果:
D1中的数据为1,4,5,4,6,4,7,8,4,9 , D2中的数据为空,经传送后D2 为1,4,5,4,6,4,7,8,4,9
8.存在问题及体会
2.1 已知 0~15 的平方值表,查表求 X(X 是 0 到 15 间任一数) 的平方值,送到 Y 单元,用两种方法。
MOV AH,4CH INT 21H CODES ENDS END START
3. 运算前内存分布:
4. 运算后内存分布: 5. 连续运行 G= 0000 0015 6. 查看结果使用命令:-D 0770:0000 7. 记录结果:
8. 存在问题及体会
2.2 已知 0~255 的平方值表,查表求 X 的平方值,送到
MOV AH,4CH INT 21H CODES ENDS
END START
3. 运算前内存分布:
4. 运算后内存分布:
STACKS ENDS
CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS
START: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 LEA BX,TABLE
MOV AL,X MOV AH,0 ADD BX,AX MOV AL,[BX] MOV Y,AL
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
3. 运算前内存分布:
4. 运算后内存分布:
5. 连续运行 G= 0000 0022 6. 查看结果使用命令:-D 140E:0000 7. 记录结果:
MOV AH,4CH INT 21H CODES ENDS END START
3. 运算前内存分布: 1419:2000 01 03 05 06 08 02 04 07-0B 02 00 00 00 00 00 00
1419:3000 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 4. 运算后内存分布: 5. 连续运行 G= 0000 0017 6. 查看结果使用命令:-D 1419:3000 7. 记录结果:1419:3000 01 03 05 06 08 02 04 07-0B 02 00 00
DATAS ENDS
CODES SEGMENT ASSUME CS:CODES,DS:DATAS START:
MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 LEA SI,X MOV CX,10 MOV BX,0 NEXT: MOV AX,[SI]
ADD BX,AX JNC PPP INC DX PPP:INC SI INC SI DEC CX JNZ NEXT LEA DI,Y MOV [DI],BX MOV [DI+2],DX
DATAS ENDS CODES SEGMENT
ASSUME CS:CODES,DS:DATAS START:
MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV SI,2000H MOV DI,3000H MOV CX,10 NEXT:MOV AL,[SI] MOV [DI],AL INC SI INC DI DEC CX JNZ NEXT
微机原理与接口技术 实验报告
实验一
专业:
学号: 预习报告成绩 实验日期及时间:
班级: 姓名: 实验成绩: 机位号:
1.1 将数据段中 2000H 单元开始存放的 10 个数(8 位数)传送 到 3000H 开始的 10 个字节中。
1. 流程图:
2. 源程序(要求有完整的数据段、代码段):
DATAS SEGMENT ;此处输入数据段代码 ORG 2000H DAT1 DB 01H,03H,05H,06H,08H,02H,04H,07H,0BH,02H ORG 3000H DTA2 DB 10 DUP(0)
141B:0000 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 141B:0010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
4.运算后内存分布: 1419:0000 01 00 04 00 05 00 04 00-06 00 04 00 07 00 08 00 1419:0010 04 00 09 00 00 00 00 00-00 00 00 00 00 00 00 00 141B:0000 01 00 04 00 05 00 04 00-06 00 04 00 07 00 08 00 141B:0010 04 00 09 00 00 00 00 00-00 00 00 00 00 00 00 00
8. 存在问题及体会
3.2 计算 8 字节的 BCD 码十进制数 1122334455667788H 与 9988776655443322H 的和。
1. 流程图:
2. 源程序(要求有来自百度文库整的数据段、代码段):
DATAS SEGMENT D1 DB 88H,77H,66H,55H,44H,33H,22H,11H,00H D2 DB 22H,33H,44H,55H,66H,77H,88H,99H,00H SUM DB 9 DUP(0)
INT 21H CODES ENDS
END START 3. 运算前内存分布:
4. 运算后内存分布:
5. 连续运行 G= 0000 0024
6. 查看结果使用命令:-D 140E:0000
7. 记录结果: 数据 1 为:1122334455667788H 数据 2 为:99AABBCCDDEEFFH 数据和 sum 为:AACCEF1133557688H
DATAS ENDS
STACKS SEGMENT ;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS
START: MOV AX,DATAS MOV DS,AX LEA SI,D1 LEA DI,D2 LEA BX,SUM MOV CX,9 CLC
DATAS ENDS
STACKS SEGMENT ;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS
START: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 LEA SI,D1 LEA DI,D2 LEA BX,SUM MOV CX,4 CLC NEXT:MOV AX,[SI] ADC AX,[DI] MOV [BX],AX INC SI INC SI INC DI INC DI INC BX INC BX DEC CX JNZ NEXT MOV AH,4CH
DATA2 SEGMENT D2 DW 10 DUP(0) DATA2 ENDS
CODES SEGMENT ASSUME CS:CODES,DS:DATA1,ES:DATA2 START:
MOV AX,DATA1 MOV DS,AX MOV AX,DATA2 MOV ES,AX ;此处输入代码段代码 LEA SI,D1 LEA DI,D2 MOV CX,10 NEXT:MOV AX,[SI]
00 00 00 00 8. 存在问题及体会
1.2 将数据段 DATA1 中的 10 个字数据(16 位数)传送
到数据段 DATA2 中。
1.流程图:
2.源程序(要求有完整的数据段、代码段):
DATA1 SEGMENT ;此处输入数据段代码
D1 DW 1,4,5,4,6,4,7,8,4,9 DATA1 ENDS
Y 单元。
1. 流程图:
2. 源程序(要求有完整的数据段、代码段):
DATAS SEGMENT ;此处输入数据段代码 X DW 10 Y DW ? Z DW 0 TABLE DW 256 DUP(0)
DATAS ENDS
CODES SEGMENT ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 LEA SI,TABLE MOV CX,256 NEXT: MOV AX,Z MOV BX,Z MUL BX MOV [SI],AX INC Z INC SI INC SI DEC CX JNZ NEXT
MOV ES:[DI],AX INC SI INC SI INC DI INC DI DEC CX JNZ NEXT
MOV AH,4CH INT 21H CODES ENDS END START
3.运算前内存分布:
1419:0000 01 00 04 00 05 00 04 00-06 00 04 00 07 00 08 00 1419:0010 04 00 09 00 00 00 00 00-00 00 00 00 00 00 00 00
7.记录结果: 经过计算得到 0~255 的平方,查表的得到 x 为 10 时其平方数为 64H,即 100 8.存在问题及体会
3.1 计算多字节数据 1122334455667788H 与
99AABBCCDDEEFF00H 的和。
1. 流程图:
2. 源程序(要求有完整的数据段、代码段):
DATAS SEGMENT ;此处输入数据段代码 D1 DW 7788H,5566H,3344H,1122H D2 DW 0FF00H,0DDEEH,0BBCCH,99AAH SUM DW 4 DUP(0)
4. 运算后内存分布:
5. 连续运行 G= 0000 0024 6. 查看结果使用命令:-D 140E:0000 7. 记录结果: 数据为:12H,12H,23H,15H,55H,77H,66H,11H,17H,54H 结果为:020AH 8. 存在问题及体会
4.1 计算表达式 Z ((X Y) *7) /(Y 2) 的值,已知 X=10,Y=5。
1. 流程图:
2. 源程序(要求有完整的数据段、代码段): DATAS SEGMENT
;此处输入数据段代码 X DB 10 Y DB 5 Z DB 0 DATAS ENDS
CODES SEGMENT ASSUME CS:CODES,DS:DATAS
START: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV AL,X SUB AL,Y MOV BL,7 MUL BL MOV DL,Y ADD DL,2 DIV DL MOV Z,AL
1. 流程图:
2. 源程序(要求有完整的数据段、代码段):
DATAS SEGMENT ;此处输入数据段代码
TABLE DB 0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225 X DB 10 Y DB ? DATAS ENDS
STACKS SEGMENT ;此处输入堆栈段代码
数据 1 为:1122334455667788H 数据 2 为:9988776655443322H 数据和为:101111111111111101H
8. 存在问题及体会
3.3 计算 10 个字数据的和(数据自己定义)。
1. 流程图:
2. 源程序(要求有完整的数据段、代码段):
DATAS SEGMENT ;此处输入数据段代码 X DW 12H,12H,23H,15H,55H,77H,66H,11H,17H,54H Y DW 2 DUP(0)
LEA BX,TABLE MOV AX,X ADD BX,AX ADD BX,AX MOV AX,[BX] MOV Y,AX
MOV AH,4CH INT 21H CODES ENDS END START
3. 运算前内存分布:
4. 运算后内存分布:
5.连续运行 G= 0000 0030 6.查看结果使用命令:-D 0770:0000
5.连续运行 G= 0000 0021
6.查看结果使用命令: -D 141B:0000 7.记录结果:
D1中的数据为1,4,5,4,6,4,7,8,4,9 , D2中的数据为空,经传送后D2 为1,4,5,4,6,4,7,8,4,9
8.存在问题及体会
2.1 已知 0~15 的平方值表,查表求 X(X 是 0 到 15 间任一数) 的平方值,送到 Y 单元,用两种方法。
MOV AH,4CH INT 21H CODES ENDS END START
3. 运算前内存分布:
4. 运算后内存分布: 5. 连续运行 G= 0000 0015 6. 查看结果使用命令:-D 0770:0000 7. 记录结果:
8. 存在问题及体会
2.2 已知 0~255 的平方值表,查表求 X 的平方值,送到
MOV AH,4CH INT 21H CODES ENDS
END START
3. 运算前内存分布:
4. 运算后内存分布:
STACKS ENDS
CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS
START: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 LEA BX,TABLE
MOV AL,X MOV AH,0 ADD BX,AX MOV AL,[BX] MOV Y,AL
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
3. 运算前内存分布:
4. 运算后内存分布:
5. 连续运行 G= 0000 0022 6. 查看结果使用命令:-D 140E:0000 7. 记录结果:
MOV AH,4CH INT 21H CODES ENDS END START
3. 运算前内存分布: 1419:2000 01 03 05 06 08 02 04 07-0B 02 00 00 00 00 00 00
1419:3000 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 4. 运算后内存分布: 5. 连续运行 G= 0000 0017 6. 查看结果使用命令:-D 1419:3000 7. 记录结果:1419:3000 01 03 05 06 08 02 04 07-0B 02 00 00
DATAS ENDS
CODES SEGMENT ASSUME CS:CODES,DS:DATAS START:
MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 LEA SI,X MOV CX,10 MOV BX,0 NEXT: MOV AX,[SI]
ADD BX,AX JNC PPP INC DX PPP:INC SI INC SI DEC CX JNZ NEXT LEA DI,Y MOV [DI],BX MOV [DI+2],DX
DATAS ENDS CODES SEGMENT
ASSUME CS:CODES,DS:DATAS START:
MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV SI,2000H MOV DI,3000H MOV CX,10 NEXT:MOV AL,[SI] MOV [DI],AL INC SI INC DI DEC CX JNZ NEXT
微机原理与接口技术 实验报告
实验一
专业:
学号: 预习报告成绩 实验日期及时间:
班级: 姓名: 实验成绩: 机位号:
1.1 将数据段中 2000H 单元开始存放的 10 个数(8 位数)传送 到 3000H 开始的 10 个字节中。
1. 流程图:
2. 源程序(要求有完整的数据段、代码段):
DATAS SEGMENT ;此处输入数据段代码 ORG 2000H DAT1 DB 01H,03H,05H,06H,08H,02H,04H,07H,0BH,02H ORG 3000H DTA2 DB 10 DUP(0)
141B:0000 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 141B:0010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
4.运算后内存分布: 1419:0000 01 00 04 00 05 00 04 00-06 00 04 00 07 00 08 00 1419:0010 04 00 09 00 00 00 00 00-00 00 00 00 00 00 00 00 141B:0000 01 00 04 00 05 00 04 00-06 00 04 00 07 00 08 00 141B:0010 04 00 09 00 00 00 00 00-00 00 00 00 00 00 00 00
8. 存在问题及体会
3.2 计算 8 字节的 BCD 码十进制数 1122334455667788H 与 9988776655443322H 的和。
1. 流程图:
2. 源程序(要求有来自百度文库整的数据段、代码段):
DATAS SEGMENT D1 DB 88H,77H,66H,55H,44H,33H,22H,11H,00H D2 DB 22H,33H,44H,55H,66H,77H,88H,99H,00H SUM DB 9 DUP(0)
INT 21H CODES ENDS
END START 3. 运算前内存分布:
4. 运算后内存分布:
5. 连续运行 G= 0000 0024
6. 查看结果使用命令:-D 140E:0000
7. 记录结果: 数据 1 为:1122334455667788H 数据 2 为:99AABBCCDDEEFFH 数据和 sum 为:AACCEF1133557688H
DATAS ENDS
STACKS SEGMENT ;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS
START: MOV AX,DATAS MOV DS,AX LEA SI,D1 LEA DI,D2 LEA BX,SUM MOV CX,9 CLC
DATAS ENDS
STACKS SEGMENT ;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS
START: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 LEA SI,D1 LEA DI,D2 LEA BX,SUM MOV CX,4 CLC NEXT:MOV AX,[SI] ADC AX,[DI] MOV [BX],AX INC SI INC SI INC DI INC DI INC BX INC BX DEC CX JNZ NEXT MOV AH,4CH
DATA2 SEGMENT D2 DW 10 DUP(0) DATA2 ENDS
CODES SEGMENT ASSUME CS:CODES,DS:DATA1,ES:DATA2 START:
MOV AX,DATA1 MOV DS,AX MOV AX,DATA2 MOV ES,AX ;此处输入代码段代码 LEA SI,D1 LEA DI,D2 MOV CX,10 NEXT:MOV AX,[SI]
00 00 00 00 8. 存在问题及体会
1.2 将数据段 DATA1 中的 10 个字数据(16 位数)传送
到数据段 DATA2 中。
1.流程图:
2.源程序(要求有完整的数据段、代码段):
DATA1 SEGMENT ;此处输入数据段代码
D1 DW 1,4,5,4,6,4,7,8,4,9 DATA1 ENDS
Y 单元。
1. 流程图:
2. 源程序(要求有完整的数据段、代码段):
DATAS SEGMENT ;此处输入数据段代码 X DW 10 Y DW ? Z DW 0 TABLE DW 256 DUP(0)
DATAS ENDS
CODES SEGMENT ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 LEA SI,TABLE MOV CX,256 NEXT: MOV AX,Z MOV BX,Z MUL BX MOV [SI],AX INC Z INC SI INC SI DEC CX JNZ NEXT
MOV ES:[DI],AX INC SI INC SI INC DI INC DI DEC CX JNZ NEXT
MOV AH,4CH INT 21H CODES ENDS END START
3.运算前内存分布:
1419:0000 01 00 04 00 05 00 04 00-06 00 04 00 07 00 08 00 1419:0010 04 00 09 00 00 00 00 00-00 00 00 00 00 00 00 00
7.记录结果: 经过计算得到 0~255 的平方,查表的得到 x 为 10 时其平方数为 64H,即 100 8.存在问题及体会
3.1 计算多字节数据 1122334455667788H 与
99AABBCCDDEEFF00H 的和。
1. 流程图:
2. 源程序(要求有完整的数据段、代码段):
DATAS SEGMENT ;此处输入数据段代码 D1 DW 7788H,5566H,3344H,1122H D2 DW 0FF00H,0DDEEH,0BBCCH,99AAH SUM DW 4 DUP(0)