微机原理实验.docx

上传人:b****8 文档编号:29365026 上传时间:2023-07-22 格式:DOCX 页数:19 大小:17.59KB
下载 相关 举报
微机原理实验.docx_第1页
第1页 / 共19页
微机原理实验.docx_第2页
第2页 / 共19页
微机原理实验.docx_第3页
第3页 / 共19页
微机原理实验.docx_第4页
第4页 / 共19页
微机原理实验.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

微机原理实验.docx

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

微机原理实验.docx

微机原理实验

以下程序供参考:

要理解实验目的看懂程序,老师会要求修改!

剩下的四个实验程序希望大家踊跃上传!

实验二:

DATASEGMENT

DATA1DB1,6,7;被加数(修改)

DATA2DB5,6,3;加数(修改)

DATA3DB0,0,0;和(修改)

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVSI,0

CLC;清进位标志

MOVBX,OFFSETDATA3

movcx,0003h;

AGAIN:

MOVAL,DATA1[SI]

ADCAL,DATA2[SI]

MOVDATA3[si],AL;一个字节相加

INCSI

MOVDL,[bx]

cmpdl,16

jaaa;先判断是否超16

d:

CMPdL,10

JCbb;再判断是否超过10

adddl,37h;超过10其ascii码加37h

jmpee

bb:

ADDDL,30H;在0到9的acsii码加上‘0’的ascii码转化为相应的字符

jmpee

aa:

incData1[SI];有进位时其相应的处理

SUBDL,10h

JMPd

ee:

MOVAH,2

INT21H;显示器输出该字符

INCBX

loopAGAIN

MOVAH,4CH

INT21H;返回DOS

CODEENDS

ENDSTART

实验三:

1.AL中两位十进制数;

CODESEGMENT

ASSUMECS:

CODE

START:

MOVAL,3EH

MOVBL,AL

MOVDL,AL

MOVCL,4

SHRDL,CL

CMPDL,9

JBENEXT1

ADDDL,7

NEXT1:

ADDDL,30H

MOVAH,2

INT21H;显示高位ASCII码

MOVDL,BL

ANDDL,0FH

CMPDL,9

JBENEXT2

ADDDL,7

NEXT2:

ADDDL,30H

MOVAH,2

INT21H;显示低位ASCII码

MOVAH,4CH

INT21H

CODEENDS;返回DOS

ENDSTART

2.

assumecs:

code

start:

movah,1

int21h

cmpal,0dh

jzdone

cmpal,'0'

jbnext

cmpal,'9'

jacharup

movdl,al

movah,2

int21h

jmpstart

charup:

cmpal,41h

jbnext

cmpal,5ah

jachard

dispc:

movdl,'c'

movah,2

int21h

next:

jmpstart

chard:

cmpal,61h

jbnext

cmpal,7ah

janext

jmpdispc

done:

movah,4ch

int21h

codeends

endstart

3.AX中四位十六进制数:

codesegment

assumecs:

code

start:

movax,04967h

movbx,ax;bx=384eh

movdl,ah;dx=384eh

movch,2;ch=2

movcl,4;cl=4

again:

shrdl,cl

cmpdl,9

jbenext1

adddl,7

next1:

adddl,30h

movah,2

int21h;先输出高字节高四位

movdl,bh

anddl,0fh

cmpdl,9

jbenext2

adddl,7

next2:

adddl,30h

movah,2

int21h;再输出高字节低四位

movbh,bl

movdl,bl

decch

jnzagain

movah,4ch

int21h

codeends

endstart

实验四:

思考题:

datasegment

stringdb100dup(?

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

movcx,0000h

leadi,string

begin:

movah,1

int21h

cmpal,0dh

jzdone

mov[di],al

incdi

inccx

jmpbegin

done:

MOVDL,0aH

MOVAH,02

INT21H

movbx,cx;bx=384eh

movdl,ch;dx=384eh

movch,2;ch=2

movcl,4;cl=4

again:

shrdl,cl

cmpdl,9

jbenext1

adddl,7

next1:

adddl,30h

movah,2

int21h

movdl,bh;先输出高字节

anddl,0fh

cmpdl,9

jbenext2

adddl,7

next2:

adddl,30h

movah,2

int21h

movbh,bl

movdl,bl

decch

jnzagain

movah,4ch

int21h

codeends

endstart

实验五:

1.

datasegment

bufdb0abh,0cdh,0deh,01h,02h,03h,3ah,4bh,5ch,6fh

eofdb$-buf

dataends

codesegment

assumecs:

code,ds:

data

mainprocnear

start:

movax,data

movds,ax

movcl,10

leasi,buf

loop1:

callHEXAC

callDISP

deceof

jnzloop1

movah,4ch

int21h

mainendp

HEXACprocnear

movbl,[si]

incsi

ret

HEXACendp

DISPprocnear

movcl,4

movch,2

move:

rolbl,cl

movdl,bl

anddl,0fh

adddl,30h

cmpdl,'9'

jbeprint

adddl,07h

print:

movah,02h

int21h

decch

jnzmove

movdl,''

movah,02h

int21h

ret

DISPendp

codeends

endstart

2.统计字符串中字符b的个数

DATASEGMENT

STR1DB0ah,0dh,'PLEASEINPUTYOURSTRING:

$'

STR2db0ah,0dh,'THENUMBEROFbis:

$'

TABLEDB50,?

50DUP(?

),'$'

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

leadx,str1

movah,9

int21h

leadx,table

movah,0ah

int21h

leasi,table

movcl,[si+1]

movch,0

incsi

incsi

moval,'b'

movah,0

pushsi

pushcx

pushax

callcheck

popax

movcl,al

leadx,str2

movah,9

int21h

movdl,cl

anddl,0fh

cmpdl,9

jbecan

adddl,07h

can:

adddl,30h

movah,2

int21h

exit:

movah,4ch

int21h

codeends

scodesegment

assumecs:

scode

checkprocfar

pushbp

movbp,sp

movsi,[bp+10]

movcx,[bp+8]

movax,[bp+6]

xorah,ah

again:

cmpal,[si]

jnecan1

incah

can1:

incsi

loopagain

moval,ah

mov[bp+10],ax

popbp

ret4

checkendp

scodeends

endstart

实验六:

1.统计小写字母的个数:

datasegment

strndb80dup(?

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

leadi,strn

movcl,0

again:

movah,1

int21h

cmpal,0dh

jzdone

mov[di],al

incdi

inccl

jmpagain

done:

leasi,strn

movch,0

movbl,0

cld

cycle:

lodsb

cmpal,61h

jbnext

cmpal,7ah

janext

incbl

next:

loopcycle

movdl,0ah

movah,02h

int21h

moval,bl

movah,0

movcl,0ah

divcl

addax,3030h

pushax

movdl,al

movah,2

int21h

popax

movdl,ah

movah,2

int21h

movah,4ch

int21h

codeends

endstart

2.删除字符串中重复的字符

datasegment

standb80dup(?

lendb?

dataends

codesegment

assumecs:

code,ds:

data,es:

data

start:

movax,data

movds,ax

moves,ax

leasi,stan

movcl,0

again:

movah,1

int21h

cmpal,0dh

jzdone

mov[si],al

incsi

inccl

jmpagain

done:

movch,0

movlen,cl

decsi

repea:

pushsi

pushcx

pushcx

popdx

deccx

jenext1

moval,[si]

cmpal,0

jenext1

comp:

decsi

cmpal,[si]

jnegoon

movbyteptr[si],0

goon:

loopcomp

next1:

popdx

popsi

decsi

decdx

MOVCX,DX

jnzrepea

leasi,stan

movcl,len

movch,0

mov[si+len-1],'$'

inccl

cycle:

moval,[si]

cmpal,0

jnznext

deccx

jzdone1

calldele

decsi

inccx

next:

incsi

loopcycle

done1:

movah,2

movdl,0dh

int21h

movdl,0ah

int21h

leadx,stan

movah,9

int21h

movah,4ch

int21h

deleproc

pushsi

pushcx

cld

movdi,si

incsi

repmovsb

popcx

popsi

ret

deleendp

codeends

endstart

思考题:

查找匹配字符m(注:

可以另选其他匹配字符)

datasegment

stringdb64hdup(?

chardb'm'

dataends

codesegment

assumecs:

code,ds:

data,es:

data

start:

movax,data

movds,ax

moves,ax

leadi,string

movcl,0

movbx,0

again:

movah,1

int21h

cmpal,0dh

jzdone

mov[di],al

incdi

inccl

jmpagain

done:

movch,0

movdi,offsetstring

moval,char

cld

A:

repnescasb

jzfound

jmpB

found:

incbx

cmpcx,0

jaA

B:

MOVDL,0aH

MOVAH,2

INT21H

movdl,bh;dx=384eh

movch,2;ch=2

movcl,4;cl=4

aa:

shrdl,cl

cmpdl,9

jbenext1

adddl,7

next1:

adddl,30h

movah,2

int21h

movdl,bh;先输出高字节

anddl,0fh

cmpdl,9

jbenext2

adddl,7

next2:

adddl,30h

movah,2

int21h

movbh,bl

movdl,bl

decch

jnzaa

movah,4ch

int21h

codeends

endstart

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

当前位置:首页 > 总结汇报 > 学习总结

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

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