最新华电保定微机原理汇编实验.docx
- 文档编号:23715234
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:67
- 大小:1.13MB
最新华电保定微机原理汇编实验.docx
《最新华电保定微机原理汇编实验.docx》由会员分享,可在线阅读,更多相关《最新华电保定微机原理汇编实验.docx(67页珍藏版)》请在冰豆网上搜索。
最新华电保定微机原理汇编实验
实验一、数据块传送
1.将数据段中2000H单元开始存放的10个数(8位数)传送到3000H开始的10个字节中。
源程序:
DATASSEGMENT
;此处输入数据段代码
ORG2000H
DATA1DB1,2,3,4,5,6,7,8,9,10
ORG3000H
DATA2DB10DUP(0)
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
MOVSI,2000H
MOVDI,3000H
MOVCX,10
NEXT:
MOVAL,[SI]
MOV[DI],AL
INCSI
INCDI
DECCX
JNZNEXT
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
运行结果:
2.将数据段中2000H单元开始存放的10个数(16位数)传送到3000H开始的10个字中。
源程序:
DATASSEGMENT
;此处输入数据段代码
ORG2000H
DATA1DW1,2,3,4,5,6,7,8,9,10
ORG3000H
DATA2DW10DUP(0)
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
MOVSI,2000H
MOVDI,3000H
MOVCX,10
NEXT:
MOVAX,[SI]
MOV[DI],AX
ADDSI,2
ADDDI,2
DECCX
JNZNEXT
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
运行后:
3.将数据DATA1中的10个字节数据传送到数据段DATA2中
源数据:
DATASSEGMENT
;此处输入数据段代码
DATA1DB1,2,3,4,5,6,7,8,9,10
ORG1000H
DATA2DB10DUP(0)
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
LEASI,DATA1
LEADI,DATA2
MOVCX,10
NEXT:
MOVAL,[SI]
MOV[DI],AL
INCSI
INCDI
DECCX
JNZNEXT
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
初始值:
运行后:
4.将数据段中2000H开始的20个数据传送到2010H开始的20个单元中。
源程序:
DATASSEGMENT
;此处输入数据段代码
ORG2000H
DATA1DB5DUP(1,2,3,4,5,6)
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
MOVSI,2000H
MOVDI,2100H
MOVCX,20
NEXT1:
MOVAL,[SI]
MOV[DI],AL
INCSI
INCDI
DECCX
JNZNEXT1
MOVSI,2100H
MOVDI,2010H
MOVCX,20
NEXT2:
MOVAL,[SI]
MOV[DI],AL
INCSI
INCDI
DECCX
JNZNEXT2
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
运行结果:
实验二查表
实验目的:
熟悉实验环境;熟练掌握查表程序
5.已知0~15的平方值表,查表求X的平方值,送到Y单元,用两种方法
DATASSEGMENT
;此处输入数据段代码
TABLEDB0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,255
XDB3
YDB0
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
LEABX,TABLE
MOVAL,X
MOVAH,0
ADDBX,AX
MOVAL,[BX]
MOVY,AL
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
运行结果:
方法二:
源程序:
DATASSEGMENT
;此处输入数据段代码
TABLEDB0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,255
XDB3
YDB0
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
LEABX,TABLE
MOVAL,X
XLAT
MOVY,AL
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
运行结果
6.2已知0~255的平方值表,查表求X的平方值,送到Y单元
源程序
DATASSEGMENT
;此处输入数据段代码
TABLEDW0,1,4,9,16,25,250DUP(0)
XDW3
YDW?
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
LEASI,TABLE
MOVAX,X
ADDAX,AX
ADDBX,AX
MOVAX,[BX]
MOVY,AX
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
运行结果
实验三、计算
7.计算1234F000H+98765000H的和
源程序:
DATASSEGMENT
;此处输入数据段代码
DATA1DD1234F000H
DATA2DD98765000H
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
LEASI,DATA1
LEADI,DATA2
MOVAX,[SI]
ADDAX,[DI]
MOV[SI],AX
MOVAX,[SI+2]
ADCAX,[DI+2]
MOV[SI+2],AX
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
运行结果
8.计算8字节数据1122334455667788H与99AABBCCDDEEFF00H的和
源程序:
DATASSEGMENT
;此处输入数据段代码
DATA1DQ1122334455667788H
DATA2DQ99AABBCCDDEEFF00H
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
LEASI,DATA1
LEADI,DATA2
MOVCX,4
CLC
NEXT:
MOVAX,[SI]
ADCAX,[DI]
MOV[SI],AX
ADDSI,2
ADDDI,2
DECCX
JNZNEXT
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
运行结果
9.计算8字节的BCD码十进制数1122334455667788H与9988776655443322H的和
源程序:
DATASSEGMENT
;此处输入数据段代码
DATA1DB88H,77H,66H,55H,44H,33H,22H,11H
DATA2DB22H,33H,44H,55H,66H,77H,88H,99H
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
LEASI,DATA1
LEADI,DATA2
CLC
MOVCX,8
NEXT:
MOVAL,[SI]
ADCAL,[DI]
DAA
MOV[SI],AL
INCSI
INCDI
DECCX
JNZNEXT
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
运行结果
10.计算10个字节数据的和(数据自己定义)
源程序:
DATASSEGMENT
;此处输入数据段代码
DATA1DB1,2,3,4,5,6,7,8,9,10
SUMDB0
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
LEASI,DATA1
LEADI,SUM
MOVCX,10
CLC
NEXT:
MOVAL,[SI]
ADCSUM,AL
ADDSI,1
DECCX
JNZNEXT
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
运行结果
11.计算10个字数据的和(数据自己定义)
源程序:
DATASSEGMENT
;此处输入数据段代码
DATA1DW1,2,3,4,5,6,7,8,9,10
SUMDW0
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
LEASI,DATA1
LEADI,SUM
MOVCX,10
CLC
NEXT:
MOVAX,[SI]
ADCSUM,AX
ADDSI,2
DECCX
JNZNEXT
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
运行结果
实验四、计算表达式的值
12.计算表达式
的值,已知X=10,Y=5。
DATASSEGMENT
;此处输入数据段代码
XDB10
YDB5
ZDB?
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
MOVAL,X
SUBAL,Y
MOVBL,7
MULBL
CBW
MOVBL,Y
ADDBL,2
IDIVBL
MOVZ,AL
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
实验五、找最大、最小数
13.找出2040H单元和2041H单元的大数,送2042H单元(数据自己定义)
DATASSEGMENT
;此处输入数据段代码
ORG2040H
DATA1DB11
DATA2DB12
DATA3DB?
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
MOVAL,DATA1
CMPAL,DATA2
JGGREAT
MOVAL,DATA2
GREAT:
MOVDATA3,AL
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
14.找出10个数(8位数)里的最大数(数据自己定义)
DATASSEGMENT
;此处输入数据段代码
DATADB1,2,3,6,5,4,10,9,8,7
MAXDB?
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
LEABX,DATA
MOVCX,9
MOVAL,[BX]
NEXT:
INCBX
CMPAL,[BX]
JGGREAT
MOVAL,[BX]
GREAT:
MOVMAX,AL
DECCX
JNZNEXT
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
15.找出10个数(8位数)里的最小数(数据自己定义)
DATASSEGMENT
;此处输入数据段代码
DATADB3,2,1,6,5,4,10,9,8,7
MINDB?
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
LEABX,DATA
MOVCX,9
MOVAL,[BX]
NEXT:
INCBX
CMPAL,[BX]
JLLESS
MOVAL,[BX]
LESS:
MOVMIN,AL
DECCX
JNZNEXT
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
16.找出10个数(16位数)里的最大数(数据自己定义)
DATASSEGMENT
;此处输入数据段代码
DATADW3,2,1,6,5,4,10,9,8,7
MAXDW?
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
LEABX,DATA
MOVCX,9
MOVAX,[BX]
NEXT:
ADDBX,2
CMPAX,[BX]
JGGREAT
MOVAX,[BX]
GREAT:
MOVMAX,AX
DECCX
JNZNEXT
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
17.找出10个数(16位数)里的最小数(数据自己定义)
DATASSEGMENT
;此处输入数据段代码
DATADW3,2,1,6,5,4,10,9,8,7
MINDW?
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
LEABX,DATA
MOVCX,9
MOVAX,[BX]
NEXT:
ADDBX,2
CMPAX,[BX]
JLLESS
MOVAX,[BX]
LESS:
MOVMIN,AX
DECCX
JNZNEXT
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
实验六、统计正数、负数个数
18.找出10个数(8位数)里的正数个数(数据自己定义)
源程序:
DATASSEGMENT
;此处输入数据段代码
TABLEDB-1,-2,-3,-4,-5,1,2,3,4,5
NUMDB?
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
LEASI,TABLE
MOVNUM,0
MOVCX,10
NEXT2:
MOVAL,[SI]
TESTAL,80H
JNZNEXT1
INCNUM
NEXT1:
INCSI
DECCX
JNZNEXT2
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
运行结果:
19.找出10个数(8位数)里的负数个数(数据自己定义)
源程序:
DATASSEGMENT
;此处输入数据段代码
TABLEDB-1,-2,-3,-4,-5,1,2,3,4,5
NUMDB?
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
LEASI,TABLE
MOVNUM,0
MOVCX,10
NEXT2:
MOVAL,[SI]
TESTAL,80H
JZNEXT1
INCNUM
NEXT1:
INCSI
DECCX
JNZNEXT2
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
运行结果:
20.找出10个数(16位数)里的正数个数(数据自己定义)
源程序:
DATASSEGMENT
;此处输入数据段代码
TABLEDW-1,-2,-3,-4,-5,1,2,3,4,5
NUMDB?
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
LEASI,TABLE
MOVNUM,0
MOVCX,10
NEXT2:
MOVAX,[SI]
TESTAX,8000H
JNZNEXT1
INCNUM
NEXT1:
ADDSI,2
DECCX
JNZNEXT2
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
运行结果:
21.找出10个数(16位数)里的负数个数(数据自己定义)
源程序:
DATASSEGMENT
;此处输入数据段代码
TABLEDW-1,-2,-3,-4,-5,1,2,3,4,5
NUMDB?
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
LEASI,TABLE
MOVNUM,0
MOVCX,10
NEXT2:
MOVAX,[SI]
TESTAX,8000H
JZNEXT1
INCNUM
NEXT1:
ADDSI,2
DECCX
JNZNEXT2
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
运行结果:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 新华 保定 微机 原理 汇编 实验