华电保定微机原理汇编实验.docx

上传人:b****0 文档编号:17643078 上传时间:2023-07-27 格式:DOCX 页数:67 大小:1.10MB
下载 相关 举报
华电保定微机原理汇编实验.docx_第1页
第1页 / 共67页
华电保定微机原理汇编实验.docx_第2页
第2页 / 共67页
华电保定微机原理汇编实验.docx_第3页
第3页 / 共67页
华电保定微机原理汇编实验.docx_第4页
第4页 / 共67页
华电保定微机原理汇编实验.docx_第5页
第5页 / 共67页
华电保定微机原理汇编实验.docx_第6页
第6页 / 共67页
华电保定微机原理汇编实验.docx_第7页
第7页 / 共67页
华电保定微机原理汇编实验.docx_第8页
第8页 / 共67页
华电保定微机原理汇编实验.docx_第9页
第9页 / 共67页
华电保定微机原理汇编实验.docx_第10页
第10页 / 共67页
华电保定微机原理汇编实验.docx_第11页
第11页 / 共67页
华电保定微机原理汇编实验.docx_第12页
第12页 / 共67页
华电保定微机原理汇编实验.docx_第13页
第13页 / 共67页
华电保定微机原理汇编实验.docx_第14页
第14页 / 共67页
华电保定微机原理汇编实验.docx_第15页
第15页 / 共67页
华电保定微机原理汇编实验.docx_第16页
第16页 / 共67页
华电保定微机原理汇编实验.docx_第17页
第17页 / 共67页
华电保定微机原理汇编实验.docx_第18页
第18页 / 共67页
华电保定微机原理汇编实验.docx_第19页
第19页 / 共67页
华电保定微机原理汇编实验.docx_第20页
第20页 / 共67页
亲,该文档总共67页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

华电保定微机原理汇编实验.docx

《华电保定微机原理汇编实验.docx》由会员分享,可在线阅读,更多相关《华电保定微机原理汇编实验.docx(67页珍藏版)》请在冰点文库上搜索。

华电保定微机原理汇编实验.docx

华电保定微机原理汇编实验

实验一、数据块传送

将数据段中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

运行结果:

将数据段中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

运行后:

将数据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

初始值:

运行后:

将数据段中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

运行结果:

实验二查表

实验目的:

熟悉实验环境;熟练掌握查表程序

1.已知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

运行结果

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

运行结果

实验三、计算

2.计算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字节数据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

运行结果

计算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个字节数据的和(数据自己定义)

源程序:

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

运行结果

计算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

运行结果

实验四、计算表达式的值

3.计算表达式

的值,已知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

实验五、找最大、最小数

4.找出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

找出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

找出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

找出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

找出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

实验六、统计正数、负数个数

5.找出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

运行结果:

找出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

运行结果:

找出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

运行结果:

找出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

运行结果:

实验七、数据块比较

6.比较数据段DS与数据段ES中的10个

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 视频讲堂

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2