西电微机原理大作业.docx

上传人:b****2 文档编号:2269222 上传时间:2022-10-28 格式:DOCX 页数:16 大小:277.12KB
下载 相关 举报
西电微机原理大作业.docx_第1页
第1页 / 共16页
西电微机原理大作业.docx_第2页
第2页 / 共16页
西电微机原理大作业.docx_第3页
第3页 / 共16页
西电微机原理大作业.docx_第4页
第4页 / 共16页
西电微机原理大作业.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

西电微机原理大作业.docx

《西电微机原理大作业.docx》由会员分享,可在线阅读,更多相关《西电微机原理大作业.docx(16页珍藏版)》请在冰豆网上搜索。

西电微机原理大作业.docx

西电微机原理大作业

 

微机原理与接口技术

大作业

 

姓名:

021215班

学号:

 

第一次上机:

在全屏幕编辑软件下,建立以下汇编语言源程序。

执行结果:

指令

SRC寻址方式

SRC的地址

AX推算值

AX实际值

MOVAX,CX

寄存器寻址

0005

0005

MOVAX,500H

立即寻址

0500

0500

MOVAX,TABLE

直接寻址

DS:

0004

A5A4

A5A4

MOVAX,ES:

[BX]

寄存器间接寻址

ES:

0004

C5C4

C5C4

MOVAX,[BX+05H]

寄存器相对寻址

DS:

0009

AAA9

AAA9

MOVAX,SS:

[BX]+03H

寄存器相对寻址

SS:

0007

B8B7

B8B7

MOVAX,TABLE[BX]

寄存器相对寻址

DS:

0008

A9A8

A9A8

MOVAX,07H[BX]

寄存器相对寻址

DS:

000B

ACAB

ACAB

MOVAX,[BP]

寄存器间接寻址

SS:

0003

B4B3

B4B3

MOVAX,TABLE[BP]

寄存器相对寻址

DS:

0007

A8A7

A8A7

MOVAX,08H[BP]

寄存器相对寻址

SS:

000B

BCBB

BCBB

MOVAX,[BP+06H]

寄存器相对寻址

SS:

0009

BAB9

BAB9

MOVAX,DS:

[BP+03H]

寄存器相对寻址

DS:

0006

A7A6

A7A6

MOVAX,[BP]+05H

寄存器相对寻址

SS:

0008

B9B8

B9B8

MOVAX,ES:

[SI+03H]

寄存器相对寻址

ES:

0005

C6C5

C6C5

MOVAX,[DI+06H]

寄存器相对寻址

DS:

0007

A8A7

A8A7

MOVAX,[DI]+05H

寄存器相对寻址

DS:

0006

A7A6

A7A6

MOVAX,TABLE[SI]

寄存器相对寻址

DS:

0006

A7A6

A7A6

MOVAX,[SI]

寄存器间接寻址

DS:

0002

A3A2

A3A2

MOVAX,TABLE[DI]

寄存器相对寻址

DS:

0005

A6A5

A6A5

MOVAX,[SI]+05H

寄存器相对寻址

DS:

0007

A8A7

A8A7

MOVAX,[BX][DI+01H]

基址变址且相对寻址

DS:

0006

A7A6

A7A6

MOVAX,[BX][SI]+03H

基址变址且相对寻址

DS:

0009

AAA9

AAA9

MOVAX,TABLE[BX][SI]

基址变址且相对寻址

DS:

000A

ABAA

ABAA

MOVAX,ES:

[BX][DI]

基址变址寻址

ES:

0005

C6C5

C6C5

MOVAX,[BP][DI+02H]

基址变址且相对寻址

SS:

0006

B7B6

B7B6

MOVAX,TABLE[BP][DI]

基址变址且相对寻址

DS:

0008

A9A8

A9A8

MOVAX,ES:

[BP][SI]

基址变址寻址

ES:

0005

C6C5

C6C5

MOVAX,[BP][SI+05H]

基址变址且相对寻址

SS:

000A

BBBA

BBBA

MOVAX,03H[BP][DI]

基址变址且相对寻址

SS:

0007

B8B7

B8B7

MOVAX,[BP][SI]

基址变址寻址

SS:

0005

B6B5

B6B5

MOVAX,[BP+02H][DI+03H]

基址变址且相对寻址

SS:

0009

BAB9

BAB9

MOVAX,TABLE[BP+02H][DI+03H]

基址变址且相对寻址

DS:

000D

AEAD

AEAD

第二次上机:

1.编写求十进制数02121451与19931029之和的程序,并将和以十进制数的形式送屏幕显示。

编程要求与提示:

[1]两个加数均以压缩(组合)十进制数形式存放在ADD1和ADD2为首址的存贮器单元。

[2]和以压缩十进制数的形式存入SUM以下单元。

[3]将和送到屏幕显示部分功能的实现采用子程序的形式。

代码如下:

STACKSEGMENTSTACK'STACK'

DW100HDUP(?

STACKENDS

DATASEGMENT

ADD1DD02121451H;加数以组合十进制形式存放在双字单元

ADD2DD19931029H

SUMDD?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,ES:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

MOVES,AX

MOVAX,STACK

MOVSS,AX

LEASI,ADD1

LEADI,ADD2

LEABX,SUM

MOVAL,[SI]

ADDAL,[DI];最低位的一个字节相加

DAA;加法组合BCD码调整

MOV[BX],AL;结果存放在SUM第一个字节

MOVAL,[SI+1];第二个字节相加

ADCAL,[DI+1]

DAA

MOV[BX+1],AL

MOVAL,[SI+2]

ADCAL,[DI+2]

DAA

MOV[BX+2],AL

MOVAL,[SI+3]

ADCAL,[DI+3]

DAA

MOV[BX+3],AL

MOVDL,00;最高位字节有进位则显示"01"

ADCDL,00

CALLDISPSUM

MOVAH,4CH;返回DOS

INT21H

DISPSUMPROCNEAR;结果显示子程序

PUSHAX

PUSHBX

PUSHCX

PUSHSI

MOVSI,4

PUSHDX

MOVCX,5

LAB:

PUSHCX

PUSHBX

MOVAL,DL

MOVBL,DL

MOVCL,4;显示高位字节

SHRAL,CL

ADDAL,30H

MOVAH,02

MOVDL,AL

INT21H;显示一位字符

ANDBL,0FH;显示低位字节

ADDBL,30H

MOVAH,02

MOVDL,BL

INT21H

POPBX

POPCX

DECSI

MOVDL,[BX][SI];结果显示

LOOPLAB

POPDX

POPSI

POPCX

POPBX

POPAX

RET

DISPSUMENDP

CODEENDS

ENDSTART

运行截图:

 

2.有一个首地址为A的N字数组,请编程序使该数组中的数按从大到小的次序排列。

编程要求及提示:

[1]参加排序的数据及个数由学生自己定义。

[2]要将排序前的数组和排序后的数组在屏幕上显示出来。

代码如下:

STACKSEGMENTSTACK

DB256DUP(?

STACKENDS

DATASEGMENT

DATA1DW0,2,1,2,1,4,5,1

STRING1DB'Theoriginalnumbers:

',0DH,0AH,'$'

STRING2DB'Thenumbersfromlargetosmall:

',0DH,0AH,'$'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,ES:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

MOVES,AX

MOVAX,STACK

MOVSS,AX

LEADX,STRING1;显示人机交互提示

MOVAH,09H

INT21H

MOVCX,8

LEASI,DATA1;显示初始数据

L1:

MOVAX,[SI]

ADDSI,2

CALLDISPAX

CALLDISPCR

LOOPL1

MOVCX,7

LEASI,DATA1

ADDSI,14;指针指向最后一个数据

LP1:

PUSHCX

PUSHSI

LP2:

MOVAX,[SI];数据排序

CMPAX,[SI-2]

JBENOXCHG

XCHGAX,[SI-2];交换操作

MOV[SI],AX

NOXCHG:

DECSI;不需排序时继续

DECSI

LOOPLP2

POPSI

POPCX

LOOPLP1

LEADX,STRING2;显示字符串

MOVAH,09H

INT21H

MOVCX,8;显示排好序后数据

LEASI,DATA1

L2:

MOVAX,[SI]

ADDSI,2

CALLDISPAX

CALLDISPCR

LOOPL2

MOVAH,4CH

INT21H

DISPALPROC;显示AL内容子程序

PUSHAX

PUSHCX

PUSHDX

PUSHAX

MOVCL,4;处理高位十六进制数

SHRAL,CL

CALLCHANG

MOVAH,02H

MOVDL,AL

INT21H;显示一位字符

POPAX

ANDAX,0FH;处理低位十六进制数

CALLCHANG

MOVAH,02H

MOVDL,AL

INT21H

POPDX

POPCX

POPAX

RET

DISPALENDP

CHANGPROC;十六进制数转换为ASCII码

CMPAL,10

JNGECHANG1

ADDAL,7

CHANG1:

ADDAL,30H

RET

CHANGENDP

DISPAXPROC;显示AX内容子程序

XCHGAL,AH

CALLDISPAL

XCHGAH,AL

CALLDISPAL

RET

DISPAXENDP

DISPCRPROC;回车换行子程序

PUSHAX

PUSHDX

MOVAH,2

MOVDL,0AH

INT21H

MOVAH,2

MOVDL,0DH

INT21H

POPDX

POPAX

RET

DISPCRENDP

CODEENDS

ENDSTART

运行截图:

第三次上机:

编写如下程序,并在机器上调试成功。

程序采用菜单式选择,可以接收用户从键盘输入的五个命令(1-5),各命令功能分别为:

(1)按下“1”键,完成字符串小写字母变成大写字母。

用户输入一由英文大小写字母或数字0-9组成的字符串(以回车结束),程序逐个检查字符串中各字符,将原串中小写字母变成大写字母,其他字符不变,并在屏幕上显示。

用户按任一键,重做,按ESC键,返回主菜单

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

当前位置:首页 > 经管营销 > 生产经营管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1