2023年匯編實驗報告2_第1頁
2023年匯編實驗報告2_第2頁
2023年匯編實驗報告2_第3頁
2023年匯編實驗報告2_第4頁
2023年匯編實驗報告2_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

中南大學

匯編實驗報告

學院:信息科學與工程學院

班級:計科工試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,循環(huán)次數為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時表達當前元素是字母。設立循環(huán)

判斷每一位的元素是否在二十六個字母的大小寫范圍內。運用

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開發(fā)打不食好的

:產者.侄為是字母

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_

實驗三、數組元素排序

一、實驗內容

實現(xiàn)從鍵盤輸入兩個數字并存入數組中,對數組中元素進

行排序并打印在屏幕上。

二、算法分析

對于從鍵盤輸入的每個數字都將其存進數組的一個內存

單元中,并將數組第一個元素的有效地址置入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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論