2023年汇编实验报告2_第1页
2023年汇编实验报告2_第2页
2023年汇编实验报告2_第3页
2023年汇编实验报告2_第4页
2023年汇编实验报告2_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中南大学

汇编实验报告

学院:信息科学与工程学院

班级:计科工试1501班

学号:__________________________

姓名:______________张雨欣_______________

指导老师:______________雷向东____________________

完毕时间:2023.06.09

目录

实验一、判断素数.............3

实验二、判断单词个数..........9

实验三、数组元素排序..........13

心得体会.......................21

实验一、判断素数

一、实验内容

根据从键盘输入的数字判断其是否是素数,并在屏幕上打

出判断结果。

二、算法分析

调用子程序判断素数

思绪:只能被1和它自身整除的数叫做素数,假设输入数

X(十进制)

1.先将我们输入的字符转换为10进制相应的数存入BX

2.判断是否小于2:假如这个数是2或1,则一定是素数

3.从2开始除到X-1,判断每一次的余数是否为0

4.若有一次的余数为0,则不是素数

5.若余数都不为0,循环次数为X-2,则是素数

三、源代码

datasegment

valdb'Thedataisaprimenumber!$'

va2db'-l$'

dataends

codesegment

assumecs:code/ds:data

start:

movax,data

movds,ax

cal1decibin;段内调用子程序

callcrlf

calljudge

callcrlf

movah,4ch

int21h

decibinprocnear;子程序从键盘接受十进制

movbx,0

newchar:

movah,1

int21h

suba1,30h;转为十进制

jlexit;小于0退出

cmpa1,9

jgexit次于9退出

cbw

xchgax,bx;将ax和bx中的内容互换

movex,10

mu1ex

xchgax,bx

addbx,ax

jmpnewchar

exit:

ret

decibinendp

judgeprocnear;判断程序

movcx,bx

subex,2

empbx,2

jleprint1

movd1,1

Jud:

movax,bx

incd1

divdl

empah,0

jzprint2

loopjud

jmpprintl

printl:

movah,09h

leadx,val

int21h

ret

print2:

movah,09h

leadx,va2

int21h

ret

judgeendp

crlfprocnear

movdl,Odh

movah,2h

int2lh

movdl,Oah

movah,02h

int21h

ret;返回

crIfendp

codeends

endstart

三、结果演示

置DOSBox0.74,Cpuspeed:3000cycles,Frameskip0,Program:DW...I巳

hedataisaprimenumber?

Pressanykeytocontinue_

蹴DOSBox0.74,Cpuspeed:3000cycles,Frameskip0,Program:DW...三回应

1/

1

Pressanykeytocontinue

实验二、判断单词个数

一、实验内容

给定句子,编写程序判断句子中单词的个数。

二、算法分析

设立bl标志位,当bl为1时表达当前元素是字母。设立循环

判断每一位的元素是否在二十六个字母的大小写范围内。运用

Si拟定到每一位元素,设立多个跳转条件。每判断一次就让

si力口一o

三、源代码

.mode1sma11

.data

stringdb"hello,theworld!”

endstringdb?

.code

mainprocfar

movax,@data

movds,ax

movex,(offsetendstring-offsetstri

ng)

movdl,0

movbl,0;标志位为1是字母

movsi,offsetstring

again:

cmpb1,0

jnz11;zf不为1跳转

moval,[si]

cmpal,'A'

jb14

cmpal,'Z'

ja13

movb1,1

incdl

jmp14

13:

cmpa1,'a'

jb14

cmpal,'z

ja14

movbl,1

incdl

jmp14

11:

moval,Esi]

cmpa1,'A'

jae15

movb1,0

jmp14

15:

cmpal,'Z'

jbe14

cmpa1,'a'

jae17

movb1,0

jmp14

17:

cmpa1,'z'

jbe14

movbl,0

14:

incsi

loopagain

adddl,30h

movah,2h

int21h

movax,4c00h

int21h

mainendp

end

四、运营测试

Xtt®gfy(8)TJUQ)ttffilH)

n

jiff停存R»1帖帖宣投3SKMifitt我袤AiKtiS

modelsnailnsngQ

.data

stringdb-hello,theworld*-特别提M・

endstringdb?

.code1同步*出OM«EeXtorWi>,fl(质实给落筑•

nainprocfar、事学的gech.CK*开设系短软件•用

AOUax.(Mata

nonds.ax户只要佥W.N.就可以轻松地学会侵肾它,

nouex.(offsetendstringoffsetstring)从百方♦增遂行(支总■««听6kcthe.C,.O)

nowdl,0的学习,为用户if一步学习军*ffhos开发打不食好的

:产者.侄为是字母

novbl.01ata-实・痛Rtt北的*想・

>由挎作1聆novsi.offsetstring

・曲褓修搐令jgain:2代伴支构DOSZ编(柒用\££XE6MJ»>•

,汇嚼《蝴泠enpbl.0WMws汇缰<亲用MLIXEi14M>

t曲nwm乐

Jnz11;”不为1跳转JrsBMW\v.«d«,xpacj:natiHA

*nmc*s匚!«其洌*祖用nou41,[si]5

防】勾送康通项即可,作用:就决在“位、,位、Veto-,-

MS功却用我(剜I)

”笛功蜀国用累(免费)及Windcw,8消IB看模堤街上不住王拿运行票弱给83,日

KBIK榆吟(免照)乐等汇境程序制魅。

,“(1息窗a-的作用:用户在图写程序的过程中亶面

£*»$(、DOS功度点冏褰、BIOS功能溷咫泉、控制字

n'ASCT#«*、查・1Zm列去文件1«<«•

5“信息第口”的使用方法是:依次・击打开“软件

•然乐双击要打开的内杏・就可

以在信复窗口H不谈内容,

C\Vren\Aix\Ilesktop\hh.ax>

当第81的急行假:59行号7列号T4安阳工希计算机科学与值制工尊用N求民

圈DOSBox0.74,Cpuspeed:3000cycles,Frameskip0,Program:DW...|_Q回用

Pressanykeytocontinue_

实验三、数组元素排序

一、实验内容

实现从键盘输入两个数字并存入数组中,对数组中元素进

行排序并打印在屏幕上。

二、算法分析

对于从键盘输入的每个数字都将其存进数组的一个内存

单元中,并将数组第一个元素的有效地址置入DI,之后采用冒

泡排序算法对数组元素进行排序。

二、源代码

CODESEGMENT

ASSUMECS:CODE

ORG100H

START:

PUSHCS

POPDS

PUSHCS

POPES

CALLINPUTNUM

MOVAX,NUM

MOVN,AX

CALLBUBBLESORT

MOVAH,2

MOVDL,10

INT21H

MOVDL,13

INT21H

MOVCX,N

LEASI,ARRAY

@M1:

MOVAX,[SI]

CALLDISPAX

INCSI

INCSI

LOOP@M1

MOVAH,4CH

INT21H

NDW?

—=—————————————-------二---=---———――=二二-------------

BUBBLESORTPROCNEAR

LEABX,ARRAY

LEASI,NUM

MOVAX,SI

SUBAX,BX

RORAX,1

MOVWORDPTR[NUM],AX

DECWORDPTR[NUM]

MOVWORDPTR[I],0

以下采用冒泡排序

LEADI,ARRAY

LINE1:

INCWORDPTR[I]

MOVAX,WORDPTR[I]

CMPAX,WORDPTR[NUM]

JGLINE3

MOVWORDPTR[J],0

LINE2:

INCWORDPTR[J]

MOVAX,WORDPTR[NUM]

INCAX

SUBAX,WORDPTR[I]

CMPWORDPTR[J],AX

JGLINE1

MOVBX,WORDPTR[J]

RORBX,1

MOVAX,WORDPTR[DI][B

X-2]

CMPAX,WORDPTR[DI][BX]

JAELINE2

MOVCX,W0RDPTR[DI][BX]

MOVWORDPTR[DI][BX],AX

MOVWORDPTR[DI][BX-2],CX

JMPLINE2

LINE3:

RET

IDW?

JDW?

BUBBLESORTENDP

;键盘输入数值数组子程序(数组名为array,元素个数存放在num

中)

INPUTNUMPROCNEAR

;输入的数据以一个空格分隔,以回车符结束输入

LEADLARRAY;将数组第一个元

素的有效地址置入DI

MOVWORDPTR[NUM],0

STIN:

MOVAX,0

PUSHAX

AGAIN1:

MOVAH,1

INT21H

MOVBYTEPTR[CHAR],AL

CMPAL,13

JELINEO

CMPAL,''

JELINEO

SUBAL,30H

MOVAH,0

MOVSI,AX

POPAX

MOVCL,10

MOVCH,0

MULCX

ADDAX,SI

PUSHAX

JMPAGAIN1

LINEO:

POPAX

MOVWORDPTR[DI],AX

INCWORDPTR[NUM]

CMPBYTEPTR[CHAR],13

JESTINEND

INCDI

INCDI

JMPSTIN

STINEND:

RET

ARRAYDW100DUP(O)

NUMDW0

CHARDB9

INPUTNUMENDP

DISPAXPROCNEAR

PUSHBX

PUSHCX

PUSHDX

PUSHSI

PUSHDS

PUSHCS

POPDS

PUSHAX

MOV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论