西电微机原理上机作业完整版.docx

上传人:b****6 文档编号:6674069 上传时间:2023-01-08 格式:DOCX 页数:20 大小:224.96KB
下载 相关 举报
西电微机原理上机作业完整版.docx_第1页
第1页 / 共20页
西电微机原理上机作业完整版.docx_第2页
第2页 / 共20页
西电微机原理上机作业完整版.docx_第3页
第3页 / 共20页
西电微机原理上机作业完整版.docx_第4页
第4页 / 共20页
西电微机原理上机作业完整版.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

西电微机原理上机作业完整版.docx

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

西电微机原理上机作业完整版.docx

西电微机原理上机作业完整版

 

班级:

021113

学号:

02111283

姓名:

范亚男

指导老师:

董玫

 

上机作业

(一)

指令

SRC寻址方式

SRC的地址

AX推算值

AX实际值

MOVAX,CX

寄存器寻址

0005

0005

MOVAX,500H

立即寻址

0500

0500

MOVAX,TABLE

直接寻址

1541:

0004

A5A4

A5A4

MOVAX,ES:

[BX]

寄存器间接寻址

1542:

0004

C5C4

C5C4

MOVAX,[BX+05H]

寄存器相对寻址

1541:

0009

AAA9

AAA9

MOVAX,SS:

[BX]+03H

寄存器相对寻址

153F:

0007

B8B7

B8B7

MOVAX,TABLE[BX]

寄存器相对寻址

1541:

0008

A9A8

A9A8

MOVAX,07H[BX]

寄存器相对寻址

1541:

000B

ACAB

ACAB

MOVAX,[BP]

寄存器间接寻址

153F:

0003

B4B3

B4B3

MOVAX,TABLE[BP]

寄存器相对寻址

1541:

0007

A8A7

A8A7

MOVAX,08H[BP]

寄存器相对寻址

153F:

000B

BCBB

BCBB

MOVAX,[BP+06H]

寄存器相对寻址

153F:

0009

BAB9

BAB9

MOVAX,DS:

[BP+03H]

寄存器相对寻址

1541:

0006

A7A6

A7A6

MOVAX,[BP]+05H

寄存器相对寻址

153F:

0008

B9B8

B9B8

MOVAX,ES:

[SI+03H]

寄存器相对寻址

1542:

0005

C6C5

C6C5

MOVAX,[DI+06H]

寄存器相对寻址

1541:

0007

A8A7

A8A7

MOVAX,[DI]+05H

寄存器相对寻址

1541:

0006

A7A6

A7A6

MOVAX,TABLE[SI]

寄存器相对寻址

1541:

0006

A7A6

A7A6

MOVAX,[SI]

寄存器间接寻址

1541:

0002

A3A2

A3A2

MOVAX,TABLE[DI]

寄存器相对寻址

1541:

0005

A6A5

A6A5

MOVAX,[SI]+05H

寄存器相对寻址

1541:

0007

A8A7

A8A7

MOVAX,[BX][DI+01H]

基址变址且相对寻址

1541:

0006

A7A6

A7A6

MOVAX,[BX][SI]+03H

基址变址且相对寻址

1541:

0009

AAA9

AAA9

MOVAX,TABLE[BX][SI]

基址变址且相对寻址

1541:

000A

ABAA

ABAA

MOVAX,ES:

[BX][DI]

基址变址寻址

1542:

0005

C6C5

C6C5

MOVAX,[BP][DI+02H]

基址变址且相对寻址

153F:

0006

B7B6

B7B6

MOVAX,TABLE[BP][DI]

基址变址且相对寻址

1541:

0008

A9A8

A9A8

MOVAX,ES:

[BP][SI]

基址变址寻址

1542:

0005

C6C5

C6C5

MOVAX,[BP][SI+05H]

基址变址且相对寻址

153F:

000A

BBBA

BBBA

MOVAX,03H[BP][DI]

基址变址且相对寻址

153F:

0007

B8B7

B8B7

MOVAX,[BP][SI]

基址变址寻址

153F:

0005

B6B5

B6B5

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

基址变址且相对寻址

153F:

0009

BAB9

BAB9

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

基址变址且相对寻址

1541:

000D

AEAD

AEAD

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

STACKSEGMENTSTACK'STACK'

DW100HDUP(?

TOPLABELWORD

STACKENDS;堆栈段

DATASEGMENT

ADD1DD12678532H

ADD2DD21736543H

SUMDD?

DATAENDS;数据段

CODESEGMENT;代码段

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

MOVAX,STACK

MOVSS,AX

LEASP,TOP

LEASI,ADD1

LEADI,ADD2

MOVAL,[SI]

ADDAL,[DI]

DAA

MOVBYTEPTRSUM,AL

MOVAL,[SI+1]

ADCAL,[DI+1]

DAA

MOVBYTEPTRSUM+1,AL

MOVAL,[SI+2]

ADCAL,[DI+2]

DAA

MOVBYTEPTRSUM+2,AL

MOVAL,[SI+3]

ADCAL,[DI+3]

DAA

MOVBYTEPTRSUM+3,AL

MOVAX,WORDPTRSUM+2

CALLDISPAX

MOVAX,WORDPTRSUM

CALLDISPAX

MOVAH,4CH

INT21H

DISPALPROCNEAR

PUSHAX

PUSHCX

PUSHDX

PUSHAX

MOVCL,4

SHRAL,CL

CALLCHANG

MOVAH,02

MOVDL,AL

INT21H

POPAX

ANDAL,0FH

CALLCHANG

MOVAH,02

MOVDL,AL

INT21H

POPDX

POPCX

POPAX

RET

DISPALENDP

CHANGPROCNEAR

CMPAL,10

JNGECHANG1

ADDAL,7

CHANG1:

ADDAL,30H

RET

CHANGENDP

DISPAXPROCNEAR

XCHGAL,AH

CALLDISPAL

XCHGAH,AL

CALLDISPAL

RET

DISPAXENDP

CODEENDS

ENDSTART

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

STACKSEGMENTSTACK

DB256DUP(?

STACKENDS

DATASEGMENT

DATA1DW7800H,6832H,0000H,87H,1275H,0EC34H

STRING1DB'inputnumber:

',0DH,0AH,'$'

STRING2DB'Thenumbersfromlargetosmallis:

',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,6

LEASI,DATA1

L1:

MOVAX,[SI]

ADDSI,2

CALLDISPAX

CALLDISPCR

LOOPL1

MOVCX,5

LEASI,DATA1

ADDSI,10

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,6

LEASI,DATA1

L2:

MOVAX,[SI]

ADDSI,2

CALLDISPAX

CALLDISPCR

LOOPL2

MOVAH,4CH

INT21H

DISPALPROC

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

CMPAL,10

JNGECHANG1

ADDAL,7

CHANG1:

ADDAL,30H

RET

CHANGENDP

DISPAXPROC

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

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

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

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

(2)按下“2”键,完成找最大值

(3)按下“3”键,完成排序

(4)按下“4”键,结束程序运行,返回系统提示符。

DISPLMACROSTR

PUSHDX

PUSHAX

LEADX,STR

MOVAH,09H

INT21H

POPAX

POPDX

ENDM

ISCONTINUEMACROL

DISPS15,10,SMENU

MOVAH,08H

INT21H

CMPAL,1BH

JNEL

JMPMAIN

ENDM

CURSORMACROCURX,CURY

PUSHAX

PUSHBX

PUSHDX

MOVAH,02H

MOVDH,CURX

MOVDL,CURY

MOVBH,0

INT10H

POPDX

POPBX

POPAX

ENDM

DISPSMACROX,Y,STR

PUSHAX

PUSHBX

PUSHDX

MOVAH,02H

MOVBH,00H

MOVDH,X

MOVDL,Y

INT10H

LEADX,STR

MOVAH,09H

INT21H

POPDX

POPBX

POPAX

ENDM

SCROLLMACRON,ULR,ULC,LRR,LRC,ATT

PUSHAX

PUSHBX

PUSHCX

PUSHDX

MOVAH,06H

MOVAL,N

MOVCH,ULR

MOVCL,ULC

MOVDH,LRR

MOVDL,LRC

MOVBH,ATT

INT10H

POPDX

POPCX

POPBX

POPAX

ENDM

PREPMACROT

LEASI,INBUF+1

LEADI,OUTBUF

SCROLL21,2,0,22,79,0FH

DISPS3,20,T

DISPS6,2,CAPION

DISPS8,2,INCAP

MOVAH,0AH

INT21H

MOVCH,0

MOVCL,[SI]

INCSI

ENDM

STACKSEGMENTSTACK'STACK'

DB100HDUP(?

TOPLABELWORD

STACKENDS

DATASEGMENT

BASEDWMAIN,LTC,FMV,SORTS,EXIT

WELCMDB'Welcometothisprogram!

$'

MMENUCDB'Pleaseinputthenumber!

$'

MMENU1DB'1-LowercaseLettersToCapitalLetters$'

MMENU2DB'2-FindTheMaximumfigure$'

MMENU3DB'3-Sort$'

MMENU4DB'4-Exit!

$'

SMENUDB'PressAnyKeyTorestart,Press"ESC"ToReturnToMainMenu!

$'

WROCAPDB'WRONG!

Youhavepress""key!

Pleaseinputanumberbetween1and4!

$'

CAPIONDB'PleaseInputYourStringsandEndWith"Enter"Key!

$'

INCAPDB'YourInputIs:

$'

INBUFDB100

DB?

DB100DUP(?

OUTCAPDB'MyOutputIs:

$'

OUTBUFDB100DUP(?

MAXCAPDB'ThecharofmaxASCIIis:

.$'

ERRINFDB'ERROR!

Pleasechecktheformatyouinput!

$'

TDINVDB'Invalidtimedata!

Inputagain!

$'

NODATCAPDB'Youhaveinputnothing!

$'

TIMEDB8DUP(':

'),12DUP('')

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,ES:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

MOVES,AX

MOVAX,STACK

MOVSS,AX

LEASP,TOP

LEADX,INBUF

CLC

MAIN:

SCROLL0,0,0,24,79,0

SCROLL25,0,0,24,79,50H

SCROLL21,2,0,22,79,0FH

DISPS8,20,MMENUC

DISPS10,20,MMENU1

DISPS12,20,MMENU2

DISPS14,20,MMENU3

DISPS16,20,MMENU4

ML:

CURSOR19,1DH

MOVAH,01H

INT21H

CMPAL,31H

JLERROR

CMPAL,35H

JGERROR

ANDAX,00FH

LEABX,BASE

SHLAL,1

ADDBX,AX

JMPWORDPTR[BX]

;CMPAL,'1'

;JELTC

;CMPAL,'2'

;JEFMV

;CMPAL,'3'

;JESORTS

;CMPAL,'4'

;JEEXIT

ERROR:

CMPAL,0DH

JEMCR

MOV[WROCAP+23],AL;Otherchar

MOV[WROCAP+24],''

JMPD

MCR:

MOVWORDPTR[WROCAP+23],'RC'

D:

DISPS20,5,WROCAP;Showthewronginformation

JMPML

LTC:

CALLLLTOCL

ISCONTINUELTC

FMV:

CALLFMAXV

ISCONTINUEFMV

SORTS:

CALLSORT

ISCONTINUESORTS

EXIT:

SCROLL0,0,0,24,79,0

MOVAH,4CH

INT21H

LLTOCLPROC

REFLASHL:

PREPMMENU1

CMPCL,0

JEREFLASHL

LL1:

MOVAL,[SI]

CMPAL,'a'

JBMTOB;NOCHANGE

CMPAL,'z'

JAMTOB

SUBAL,20H;Convert

MTOB:

MOV[DI],AL

INCSI

INCDI

LOOPLL1

MOVBYTEPTR[DI],'$'

DISPS10,2,OUTCAP

DISPS10,17,OUTBUF

RET

LLTOCLENDP

FMAXVPROC

PUSHBX

REFLASHF:

PREPMMENU2

CMPCL,0

JEREFLASHF

MOVAL,0

FL1:

CMPAL,[SI]

JANEXT

MOVAL,[SI]

NEXT:

INCSI

LOOPFL1

MOV[MAXCAP+26],AL

DISPS10,2,MAXCAP

POPBX

RET

FMAXVENDP

SORTPROC

PREPMMENU3

DECCX

ADDSI,CX

MOVBYTEPTR[SI+1],'$'

LP1:

PUSHCX

PUSHSI

LP2:

MOVAL,[SI]

CMPAL,[SI-1]

JBENOXCHG

XCHGAL,[SI-1]

MOV[SI],AL

NOXCHG:

DECSI

LOOPLP2

POPSI

POPCX

LOOPLP1

DISPS10,2,OUTCAP

DISPS10,17,INBUF[2]

RET

SORTENDP

BCDASCPROCNEAR

PUSHBX

CBW

MOVBL,10

DIVBL

ADDAL,30H

MOVTIME[SI],AL

INCSI

ADDAH,30H

MOVTIME[SI],AH

INCSI

POPBX

RET

BCDASCENDP

CODEENDS

ENDSTART

按下4键

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

当前位置:首页 > 解决方案 > 学习计划

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

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