微机汇编实验代码Word文档格式.docx

上传人:b****5 文档编号:19878689 上传时间:2023-01-11 格式:DOCX 页数:20 大小:18.01KB
下载 相关 举报
微机汇编实验代码Word文档格式.docx_第1页
第1页 / 共20页
微机汇编实验代码Word文档格式.docx_第2页
第2页 / 共20页
微机汇编实验代码Word文档格式.docx_第3页
第3页 / 共20页
微机汇编实验代码Word文档格式.docx_第4页
第4页 / 共20页
微机汇编实验代码Word文档格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

微机汇编实验代码Word文档格式.docx

《微机汇编实验代码Word文档格式.docx》由会员分享,可在线阅读,更多相关《微机汇编实验代码Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。

微机汇编实验代码Word文档格式.docx

    MOV AX,4C00H

CODE ENDS

     END START      

实验二:

数据传送、数码转换程序设计实验(传送20个数据并排序)

DATASEGMENT

MSRDB20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1

NEQU20

MSR1DB'

thesmallestandthelargest'

0AH,0DH,'

$'

DATAENDS

EXDASEGMENT

VALUEDB22DUP(?

EXDAENDS

;

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,ES:

EXDA

START:

MOVAX,DATA

MOVDS,AX

MOVAX,EXDA

MOVES,AX

MOVBX,0

XORCX,CX

MOVCX,N

NEXT:

MOVAL,MSR[BX]

MOVES:

VALUE[BX],AL

INCBX

LOOPNEXT

MOVBX,OFFSETVALUE-1

MOVSI,1

FORI:

MOVDI,SI

INCDI

FORJ:

MOVAL,[BX+SI]

CMPAL,[BX+DI]

JBENEXTJ

XCHGAL,[BX+DI]

MOV[BX+SI],AL

NEXTJ:

CMPDI,N

JBEFORJ

NEXTI:

INCSI

CMPSI,N-1

JBEFORI

;

MOVDX,OFFSETMSR1

MOVAH,9

INT21H

MOVAL,ES:

VALUE[0]

MOVBX,OFFSETVALUE

XORAH,AH

MOVAL,[BX]

RORAL,4

CALLFOR

MOVDL,'

h'

MOVAH,2

MOVBX,OFFSETVALUE+19

[BX]

MOVDL,0DH

MOVDL,0AH

VALUE[20],0

将附加段寄存器指向的段值赋给数据段寄存器

PO:

CMPES:

VALUE[BX],0

JAPO

MOVAH,4CH

FORPROC

PUSHAX

ANDAL,0FH

CMPAL,09H

JANEXT2

ADDAL,30H

MOVDL,AL

POPAX

RET

NEXT2:

ADDAL,37H

FORENDP

CODEENDS

ENDSTART

实验三:

运算类程序设计实验(两个五位数减法运算,减数可大于被减数)

HANGDB0AH,0DH,'

SHUDB'

INPUTA5(WEI)NUMBER:

A1DB8

DB7DUP(?

A2DB8

A3DB5DUP(?

A4DB18DUP(?

DB'

STAKSEGMENTSTACK

SADB100DUP(?

STAKENDS

DATA,SS:

STAK

MAINPROCFAR

MOVAX,STAK

MOVSS,AX

MOVDX,OFFSETSHU

MOVAH,09H

MOVDX,OFFSETA1

MOVAH,0AH

MOVBX,DX

ADDBX,2

MOVDX,OFFSETHANG

MOVDX,OFFSETA2

MOVSI,DX

ADDSI,2

MOVCX,5

BI:

CMPAL,[SI]

JBL2

JAL1

LOOPBI

L1:

MOVAX,1

CLC

MOVBX,6

MOVSI,4

P1:

MOVAL,A1[BX]

SBBAL,A2[BX]

MOVA3[SI],AL

DECBX

DECSI

LOOPP1

MOVSI,0

JIA:

CMPA3[SI],9

JALL1

JBELL2

LL1:

ADDA3[SI],10

LL2:

ADDA3[SI],30H

LOOPJIA

JMPCHU

L2:

MOVAX,0

POPBX

POPSI

P11:

MOVAL,A2[BX]

SBBAL,A1[BX]

LOOPP11

JIA1:

JALL11

JBELL22

LL11:

LL22:

LOOPJIA1

CHU:

K1:

MOVAL,A1[SI+2]

MOVA4[SI],AL

LOOPK1

MOVA4[SI],'

-'

MOVBX,2

K2:

LOOPK2

='

CMPAX,0

JAZ2

Z1:

Z2:

K3:

MOVAL,A3[BX]

LOOPK3

MOVDX,OFFSETA4

MOVAX,4C00H

MAINENDP

实验四:

子程序设计实验(含进制及数码转换)

功能:

输入1时将输入数转换为十六进制输出,输入2时将输入数转化为bcd码输出,输入3时将输入数转化为七段共阳极码,;

输入4时返回dos系统

DATASEGMENT

MESDB'

Inputanumberfrom1to4,1-H,2-bcd,3-7-duan,4-dos'

MEDB'

youputawrongnumber'

0AH,0DH,'

TEMDB'

--Inputadecimalnumber'

'

16

STR1DB0AH,0DH;

NUMDB4DUP(?

),'

H$'

TABDB'

0123456789ABCDEF'

MES2DB'

--Ileaseinputtwoormorebitsdecimal:

'

bcd

MES1DB'

--TheBCDcodeofdecimalare:

MES3DB'

0000$'

MES4DB'

0001$'

MES5DB'

0010$'

MES6DB'

0011$'

MES7DB'

0100$'

MES8DB'

0101$'

MES9DB'

0110$'

MES10DB'

0111$'

MES11DB'

1000$'

MES12DB'

1001$'

BUFDB100

DB?

DB100DUP(0)

MEDDB100DUP(?

);

MES21DB'

--Pleaseinputtwoormorebitsdecimal:

7-d

MES111DB'

--The7duancodeofdecimalare:

TAB1DB40H,79H,24H,30H,19H,12H,02H,78H,00H,18H

BUF1DB100

MED1DB100DUP(?

STACK1SEGMENTSTACK

DW256DUP(?

STACK1ENDS

DATA,SS:

STACK1

BEGAIN:

MOVDX,OFFSETMES

MOVAH,1

CMPAL,'

1'

JZFOR1

2'

JZFOR2

3'

JZFOR3

4'

JZFOR4

MOVDX,OFFSETME

JMPBEGAIN

FOR1:

JMPFUNCTION1

FOR2:

JMPFUNCTION2

FOR3:

JMPFUNCTION3

FOR4:

JMPFUNCTION4

 

FUNCTION1:

LEADX,TEM

XORBX,BX

MOVCX,10

MOVAH,1;

1号功能从键盘读入字符

CMPAL,0DH;

如果=13也就是回车则跳到conv进行转换

JZCONV

PUSHAX;

暂存ax

MOVAX,BX;

bx存当前已有的数值,这里交换是为了用num

MULCX;

bx=bx*10

MOVBX,AX

XORAH,AH;

清空高位

ADDBX,AX;

相加

JMPNEXT;

继续读取下个字符

CONV:

bx里存的是输入的10进制数

MOVCH,4

LEABX,TAB;

bx保存16进制字符表的基址

MOVCL,4

LEASI,NUM;

num是转换后存16进制字符的地方

LOPA:

ROLAX,CL;

ax左移动4位,由于是rol,所以高4位移到低4位

暂存

ANDAX,000FH;

取出低4位,也就是高4位移过来位

MOVDI,AX;

查表

MOVAL,[BX+DI]

MOV[SI],AL;

存储

INCSI;

下个位置

POPAX;

还原状态

DECCH

JNZLOPA

LEADX,STR1;

输出

FUNCTION2:

MOVDX,OFFSETMES2

MOVDX,OFFSETBUF

MOVCL,[BX+1]

A1:

MOVDL,0FFH

MOVAL,BUF[BX]

CMPAL,3AH;

比较AL中的数是否是0~9的ASCII码

JNBA2

SUBAL,30H

JBA2

A2:

MOVAL,DL

MOVMED[BX],AL

LOOPA1

MOVCL,BX[1]

MOVDX,OFFSETMES1

A3:

MOVAL,MED[BX]

CALLSHOW1

A4:

MOVDL,20H

MOVAH,02H

LOOPA3

SHOW1PROCNEAR

CMPAL,0

JEZERO

CMPAL,1

JEONE

CMPAL,2

JETWO

CMPAL,3

JETHREE

CMPAL,4

JEFOUR

CMPAL,5

JEFIVE

CMPAL,6

JESIX

CMPAL,7

JESEVEN

CMPAL,8

JEEIGHT

CMPAL,9

JENINE

ZERO:

MOVDX,OFFSETMES3

JMPA4

ONE:

MOVDX,OFFSETMES4

TWO:

MOVDX,OFFSETMES5

THREE:

MOVDX,OFFSETMES6

FOUR:

MOVDX,OFFSETMES7

FIVE:

MOVDX,OFFSETMES8

SIX:

MOVDX,OFFSETMES9

SEVEN:

MOVDX,OFFSETMES10

EIGHT:

MOVDX,OFFSETMES11

NINE:

MOVDX,OFFSETMES12

ENDP

FUNCTION3:

MOVDX,OFFSETMES21;

显示提示

MOVDX,OFFSETBUF1

A11:

MOVAL,BUF1[BX]

JNBA21

JBA21

A21:

MOVMED1[BX],AL

LOOPA11

MOVDX,OFFSETMES111

A31:

CALLSHOW2

MOVDL,48H

LOOPA31

SHOW2PROCNEAR

MOVAL,MED1[BX]

MOVDX,BX

MOVBX,OFFSETTAB1

XLATTAB1

ANDAL,0F0H;

取高4位

SHRAL,4

CMPAL,0AH;

是否是A以上的数

JBC2

ADDAL,07H

C2:

MOVDL,AL;

showcharacter

ANDAL,0FH;

取低4位

CMPAL,0AH

JBC3

C3:

FUNCTION4:

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

当前位置:首页 > 求职职场 > 简历

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

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