2023年河北工業(yè)大學匯編實驗報告_第1頁
2023年河北工業(yè)大學匯編實驗報告_第2頁
2023年河北工業(yè)大學匯編實驗報告_第3頁
2023年河北工業(yè)大學匯編實驗報告_第4頁
2023年河北工業(yè)大學匯編實驗報告_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

匯編實驗實驗一順序與分支程序設計一、實驗目的掌握順序程序設計方法。掌握分支程序的結構及分支程序的設計,調試方法。2)學習數(shù)據(jù)傳送及算術和邏輯運算指令的用法。3)熟悉在PC機上建立、匯編、連接、調試和運營匯編語言程序的過程。二、實驗內容1)有一字變量BUF1是以原碼表達的有符號數(shù),規(guī)定將其轉換為反碼和補碼,分別存入BUF2和BUF3單元,并在屏幕上顯示出來。2)有兩個兩字節(jié)無符號數(shù)分別放在存儲單元A、B起始的緩沖器中,求其和,結果放在A起始的緩沖區(qū)并在屏幕上顯示。相加若有進位不存入存儲單元。?3)在BUF和BUF+1、BUF+2單元分別放有一個無符號字節(jié)型數(shù),編程序將其中最大數(shù)存入MAX單元,并在屏幕上顯示。?4)規(guī)定同上,只是比較的數(shù)為有符號數(shù)。5)將1000H單元開始的10個字節(jié)數(shù),采用奇偶校驗,將奇數(shù)在前偶數(shù)在后仍存回原數(shù)據(jù)區(qū)。本實驗規(guī)定在DEBUG調試狀態(tài)下進行,涉及匯編程序、運營程序、檢查結果。6)從鍵盤上接受一位十進制數(shù)X,計算Y值,并以十六進制形式顯示出來,Y按下列公式計算。7)從鍵盤上接受兩個一位十六進制數(shù)X和Y,然后再輸入一個A-D之間的一個字符,按下列規(guī)定計算。當輸入字符為A,則計算X+Y,并以十六進制形式顯示出來當輸入字符為B,則計算|X-Y|,并以十六進制形式顯示出來當輸入字符為C,則計算X*Y,并以十六進制形式顯示出來當輸入字符為D,則計算X/Y,并以十六進制形式顯示出來三、實驗設備PC機一臺四、實驗準備1)分析題目,將程序中的原始數(shù)據(jù)和最終結果的存取方法擬定好。2)畫出流程圖。3)寫出源程序。4)對程序中的結果進行分析,并準備好上機調試與用匯編程序及匯編調試的過程。五、實驗環(huán)節(jié)1)輸入源程序。2)匯編、連接程序,生成.EXE文獻,執(zhí)行文獻,檢查結果。六、實驗報告的規(guī)定1)列出源程序,說明程序的基本結構,涉及程序中各部分的功能。2)說明程序中各部分所用的算法。3)說明重要符號和所用到寄存器的功能。?4)總結為什么在設計分支程序時必須解決三個問題:判斷、轉向和定標號。5)說明標志位CF、SF和OF的意義。6)上機調試過程中碰到的問題是如何解決的。7)對調試源程序的結果進行分析。Exam1:DATA

SEGMENT;數(shù)據(jù)段BUF1

DW

7898HBUF2

DW

4

DUP(0),0AH,0DH,'$'BUF3

DW

DUP(0),'$'DATA

ENDS;數(shù)據(jù)段結束CODE

SEGMENT;代碼段

ASSUME

CS:CODE,DS:DATA;段寄存器關聯(lián)說明偽指令BEGIN:

MOV

AX,DATA

MOV

DS,AX;將數(shù)據(jù)段的基地址裝入數(shù)據(jù)段寄存器DS

MOV

AX,BUF1;將字型變量BUF1的值裝入AX寄存器

ADD

AX,0;AX寄存器里的數(shù)據(jù)加0,以便進行轉移測試

JS

NEXT;判斷(AX)的正負,若為負則轉到NEXT,為正則往下順序執(zhí)行。

MOV

BUF2,AX;為正,反碼與原碼同樣

MOV

BUF3,AX;為正,補碼與原碼同樣

JMP

EEENEXT:AND

AX,7FFFH;將符號位變?yōu)?

NOT

AX;求反碼

MOV

BUF2,AX;將BUF1的反碼裝入BUF2

INC

AX;求補碼

MOV

BUF3,AX;將補碼裝入BUF3EEE:MOV

CX,0004H;將0004H裝入CX計數(shù)器寄存器中

MOV

DI,OFFSET

BUF2;將DI指向變量BUF2開始的存儲單元

MOV

DX,

[DI];將DI所指的數(shù)據(jù)裝入DX寄存器中

ADD

DI,03;將DI指針下移三個字BBB:MOV

AX,DX;將DX中的內容裝入AX寄存器中

AND

AX,000FH;即使BUF2的低四位不變,其余均變?yōu)?

CMP

AL,0AH;比較[AL]與0AH的大小,以便能對的轉換為0-9的ASCII值

JB

QQQ;若[AL]<0AH,則轉到QQQ,否則,順序執(zhí)行

ADD

AL,07H;由于[AL]>0AH,所以[AL]+07H,使得AL能轉換成相應數(shù)字的ASCII值QQQ:ADD

AL,30H;將[AL]轉換成相應數(shù)字的ASCII值

MOV

[DI],AL;將AL中的內容裝入以DS中的內容為段基地址,以DI的內容為偏移地址的存儲單元中

DEC

DI;DI=DI-1,即將DI指向前一個存儲單元

PUSH

CX;保存CX寄存器的內容

MOV

CL,04H;給CL寄存器賦值為04H

SHR

DX,CL;將[DX]邏輯右移四位

POP

CX;恢復CX寄存器的內容

LOOP

BBB;循環(huán)判斷語句,CX=CX-1,若CX不等于0,則轉到BBB,將下一個低四位存入存儲單元中,否則循環(huán)結束

MOV

CX,0004H;給CX寄存器賦值為0004H

MOV

SI,OFFSET

BUF3;將SI指向變量BUF3開始的存儲單元

MOV

DX,[SI];將SI所指的數(shù)據(jù)裝入DX寄存器中

ADD

SI,03H;將DI指針下移三個字CCC:MOV

AX,DX;將DX中的內容裝入AX寄存器中

AND

AX,000FH;即使BUF3的低四位不變,其余均變?yōu)?

CMP

AL,0AH;比較[AL]與0AH的大小,以便能對的轉換為0-9的ASCII值

JB

DDD;若[AL]<0AH,則轉到DDD,否則,順序執(zhí)行

ADD

AL,07H;由于[AL]>0AH,所以[AL]+07H,使得AL能轉換成相應數(shù)字的ASCII值DDD:ADD

AL,

30H;將[AL]轉換成相應數(shù)字的ASCII值

MOV

[SI],AL;將AL中的內容裝入以DS中的內容為段基地址,以SI的內容為偏移地址的存儲單元中

DEC

SI;SI=SI-1,即將SI指向前一個存儲單元

PUSH

CX;保存CX寄存器的內容

MOV

CL,

04H;給CL寄存器賦值為04H

SHR

DX,

CL;將[DX]邏輯右移四位

POP

CX;恢復CX寄存器的內容

LOOP

CCC;循環(huán)判斷語句,CX=CX-1,若CX不等于0,則轉到CCC,將下一個低四位存入存儲單元中,否則循環(huán)結束

MOV

DX,

OFFSET

BUF2;將BUF2的偏移地址裝入DX寄存器中

MOV

AH,09H

INT

21H;在屏幕上顯示BUF1的反碼

MOV

DX,OFFSET

BUF3

MOV

AH,09H

INT

21H;在屏幕上顯示BUF1的補碼

MOV

AH,4CH

INT

21H;帶返回碼終止

CODE

ENDS

END

BEGINExam2:DATA

SEGMENT;數(shù)據(jù)段A

DB

34H,18H,2

DUP(0),

'$';定義字節(jié)型變量,其后的每操作數(shù)都占有一個字節(jié)B

DB

56H,

83H;定義字節(jié)型變量,其后的每操作數(shù)都占有一個字節(jié)DATA

ENDS;數(shù)據(jù)段結束CODE

SEGMENT;代碼段ASSUME

CS:CODE,

DS:DATASTART:MOV

AX,DATAMOV

DS,

AX;將數(shù)據(jù)段基地址裝入數(shù)據(jù)段寄存器DSMOV

AL,

A;將A所指的數(shù)裝入AL寄存器中MOV

BL,

B;將B所指的數(shù)裝入BL寄存器中ADD

AL,

BL;AL+BL->ALMOV

AH,

A+1;將A所指的下一個字節(jié)的數(shù)據(jù)裝入AHMOV

BH,

B+1;將B所指的下一個字節(jié)的數(shù)據(jù)裝入BHADC

AH,BH;AH與BH進行帶進位加法MOV

A,AL;將第一個無符號數(shù)的相加結果放在以A起始的緩沖區(qū)MOV

A+1,AH;將第二個無符號數(shù)的相加結果放在以A+1起始的緩沖區(qū)MOV

CX,0014H;以下是將數(shù)據(jù)轉換為相應的ASCII值MOV

DI,

OFFSETAMOV

DX,

[DI]ADD

DI,

03NEXT:MOV

AX,DXAND

AX,000FHCMP

AL,0AHJB

QQQADD

AL,07HQQQ:ADD

AL,30HMOV

[DI],

ALDEC

DIPUSH

CXMOV

CL,

14SHR

DX,

CLPOP

CXLOOP

NEXTMOV

DX,

OFFSET

AMOV

AH,09HINT

21H;在屏幕上顯示結果MOV

AH,4CHINT

21H;帶返回碼終止CODE

ENDSEND

STARTExam3:STACK

SEGMENT

STACK;堆棧段DB

1000

DUP(0);定義其后的每個操作數(shù)都占有一個字節(jié)STACK

ENDS;堆棧段結束DATA

SEGMENT;數(shù)據(jù)段BUF

DB72H,34H,1FH;定義字節(jié)型變量,其后的每操作數(shù)都占有一個字節(jié)MAX

DB

2

DUP

(?),

'$';定義字節(jié)型變量,其后的每操作數(shù)都占有一個字節(jié)DATA

ENDS;數(shù)據(jù)段結束CODE

SEGMENT;代碼段ASSUME

CS:CODE,DS:DATA,SS:STACKBEGIN:

MOV

AX,

DATAMOV

DS,

AX;將數(shù)據(jù)段基地址裝入數(shù)據(jù)段寄存器DSMOV

AL,

BUF;將BUF所指向的一個字節(jié)數(shù)據(jù)裝入ALCMP

AL,

BUF+1;比較BUF與BUF+1大小JNB

LP1;假如BUF不小于BUF+1,則轉到lp1,否則順序向下執(zhí)行MOV

AL,

BUF+1;將BUF+1所指向的一個字節(jié)數(shù)據(jù)裝入ALLP1:

CMP

AL,

BUF+2;將BUF和BUF1中較大的一個和BUF+2比較大小JAE

LP2;假如BUF2小,則轉到lp2,否則執(zhí)行順序向下執(zhí)行MOV

AL,

BUF+2;此時BUF2為三個數(shù)中最大的一個,將最大數(shù)裝入AL寄存器中LP2:

MOV

CX,

04H;以下是將輸出的最大數(shù)轉換為相應的ASCII值MOV

DI,

OFFSET

MAXMOV

DL,

ALINC

DILP3:

AND

AL,

0FHCMP

AL,

0AHJB

LP4ADD

AL,

07HLP4:

ADD

AL,

30HMOV

[DI],ALDEC

DIPUSH

CXMOV

CL,

03HSHR

DL,

CLPOP

CXMOV

AL,

DLLOOP

LP3MOV

DX,

OFFSET

MAXMOV

AH,

09HINT

21HMOV

AH,

4CHINT

21HCODE

ENDSEND

BEGIN?Exam4:STACK

SEGMENT

STACKDB1000

DUP(0)STACK

ENDSDATA

SEGMENTBUFDB

98H,

75H,

32HMAX

DB4

DUP(?),

'$'DATA

ENDSCODE

SEGMENTASSUMECS:CODE,DS:DATA,SS:STACKBEGIN:

MOV

AX,DATAMOV

DS,

AXMOV

AL,

BUFCMP

AL,

BUF+1JG

LP1;JG為比較兩個有帶符號數(shù)的大小,比較BUF和BUF1的大小,若BUF>BUF1,則跳轉到lp1繼續(xù)執(zhí)行,否則順序向下執(zhí)行XCHG

AL,

BUF+1;互換AL寄存器中的內容和BUF1,使AL寄存器中存放BUF和BUF1中較大的一個LP1:

MOV

MAX,

ALJGElp2 ?;比較兩個帶符號數(shù),假如BUF2小,則轉到lp2,否則執(zhí)行順序向下執(zhí)行MOVAL,BUF+2?Lp2:MOVMAX,AL??;以下是將輸出的最大數(shù)轉換為相應的ASCII值,與1)題相同MOV

CX,

04HMOV

DI,

OFFSET

MAXMOV

DL,

[DI]INC

DILP3:

MOV

AL,

DLAND

AL,

0FHCMP

AL,

0AHJB

LP4ADD

AL,

07HLP4:

ADDAL,

30HMOV

[DI],

ALDEC

DIPUSH

CXMOV

CL,

02SHR

DX,

CLPOP

CXLOOP

LP3MOV

DX,

OFFSET

MAXMOV

AH,

09HINT

21HMOV

AH,

4CHINT

21HCODE

ENDSEND

BEGIN實驗二循環(huán)與子程序程序設計一、實驗目的1)加深對循環(huán)結構的理解。2)掌握循環(huán)程序的設計方法。3)學習子程序的定義和調用方法。4)掌握子程序、子程序的嵌套、遞歸子程序的結構。5)掌握子程序設計、編制及調試。 6)純熟掌握DEBUG的常用命令,學會用DEBUG調試程序。二、實驗內容1)編制程序計算S=1+2·3+3·4+4·5+……+N(N+1)+……直到N(N+1)大于200為止,并將結果由屏幕上顯示出來。2)將從3000H內存單元開始的100個字節(jié)存儲單元所有清0。3)編制在屏幕上顯示九九乘法表的程序。4)編制在屏幕上顯示用*組成的三角形的程序。5)設有五個字數(shù)據(jù)存放在以BUF為首地址的內存單元中,規(guī)定采用調用多個字數(shù)據(jù)相加的子程序方法編程,和的低位字放在RESULT單元,和的高位字放在RESULT+2單元,并將結果顯示在屏幕上。6)編寫一個遞歸子程序,計算指數(shù)函數(shù)Xn的值,其中X,n從鍵盤輸入。三、實驗設備PC機一臺四、實驗環(huán)節(jié)1)按程序流程圖編制實驗程序。2)輸入源程序。3)匯編、連接程序,執(zhí)行程序,檢查結果。4)對內存單元3000H開始的100個存儲單元用E命令輸入任意數(shù)。5)程序的執(zhí)行可用DEBUG的G命令,也可用T命令單步跟蹤執(zhí)行。6)用D命令檢查執(zhí)行結果。五、實驗報告的規(guī)定列出源程序。2)對程序中用到的寄存器說明其功能。3)總結計數(shù)控制循環(huán)程序的設計方法。?4)說明如何使用DEBUG進行程序調試的。調試過程中所碰到的問題是如何解決的。、Exam1:DATASEGMENTBUFDB’S=1+2×3+3×4+4×5+…+N(N+1)+…=’,’$’RESDW4DUP(0),’$’DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETBUFMOVAH,09HINT21HMOVDX,1MOVBL,2NEXT:MOVAL,BLINCBLMULBLADDDX,AXCMPAX,200JNANEXTMOVCX,0004HMOVDI,OFFSETRESADDDI,03HNEXT1:MOVAX,DXANDAX,000FHCMPAL,0AHJBNEXT2ADDAL,07NEXT2:ADDAL,30HMOV[DI],ALDECDIPUSHCXMOVCL,04SHRDX,CLPOPCXLOOPNEXT1MOVDX,OFFSETRESMOVAH,09HINT21HMOVAH,4CHINT21HCODEENDSENDSTARTExam3:DATASEGMENT

ATAD

DB?,2AH,?,3DH,?,?,20H,'$'

ATAD1DB?,2AH,?,3DH,?,?,0DH,0AH,'$'DATAENDS

STACKSEGMENTSTACK

DB20HDUP(0)STACKENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATASTART:

MOVAX,DATA

MOVDS,AX

MOVCL,09H

MOVBL,00HOKL:

MOVAL,00H

INCBLOK1:

INCAL

PUSHAX

CMPBL,AL

JZOK

MOVBH,AL

MULBL

MOVDI,OFFSETATAD

CALLOKP

POPAX

JMPOK1OK:

MOVBH,AL

MULBL

MOVDI,OFFSETATAD1

CALLOKP

POPAX

LOOPOKL

MOVAH,4CH

INT21HOKPPROC

PUSHAX

PUSHBX

PUSHCX

ADDBX,3030H

MOV[DI],BH

MOV[DI+02H],BL

MOVCX,0AH

MOVDH,00HOKL2:

CMPAX,CX

JSOK2

ADDCX,0AH

INCDH

JMPOKL2OK2:

SUBCX,0AH

SUBAX,CX

MOVAH,DH

ADDAX,3030H

MOV[DI+04H],AH

MOV[DI+05H],AL

MOVDX,DI

MOVAH,09H

INT21H

POPCX

POPBX

POPAX

RETOKPENDPCODEENDSENDSTARTExam4:CODESSEGMENTASSUMECS:CODESSTART:

XORBX,BX

MOVDL,2AH

MOVCX,9LOP:

PUSHCX

INCBL

MOVCL,BL

MOVDL,2AHLOP2:

MOVAH,02H

INT21H

LOOPLOP2

POPCX

MOVDL,0AH

MOVAH,02H

INT21H

MOVDL,0DH

MOVAH,02H

INT21H

CMPBL,9

JZENDPRO

LOOPLOPENDPRO:

MOVAH,4CH

INT21HCODESENDSENDSTARTExam5:STACK

SEGMENT

STACK

DB

1024

DUP(0)STACK

ENDSDATA

SEGMENTBUF

DW

0F101H,110DH,52H,100H,456HCOUNT

=($-BUF)/2RESULT

DW

4

DUP(?),'$'DATA

ENDSCODE

SEGMENT

ASSUME

CS:CODE,DS:DATA,SS:STACKWDADD

PROC

PUSH

DI

MOV

AX,

0

MOV

DX,

0

MOV

DI,

OFFSET

BUFNEXT2:

ADD

AX,

[DI]

JNC

NEXT1

INC

DXNEXT1:

ADD

DI,

2

LOOP

NEXT2

POP

DI

RET

WDADD

ENDP

SHOW

PROC

PUSH

CX

PUSH

DI

MOV

CX,

04H

MOV

DI,

OFFSET

RESULT

MOV

BX,

AX

ADD

DI,

07HBBB:

MOV

AX,

BX

AND

AX,

000FH

CMP

AL,

0AH

JB

QQQ

ADD

AL,

07HQQQ:

ADD

AL,

30H

MOV

[DI],

AL

DEC

DI

PUSH

CX

MOV

CL,

04

SHR

BX,

CL

POP

CX

LOOP

BBB

MOV

CX,

0004HCCC:

MOV

AX,

DX

AND

AX,

000FH

CMP

AL,

0AH

JB

DDD

ADD

AL,

07HDDD:

ADD

AL,

30H

MOV

[DI],

AL

DEC

DI

PUSH

CX

MOV

CL,

04H

SHR

DX,

CL

POP

CX

LOOP

CCC

POP

DI

POP

CX

RET

SHOW

ENDPBEGIN:MOV

AX,

DATA

MOV

DS,

AX

MOV

CX,

COUNT

CALL

WDADD

CALL

SHOW

MOV

DX,

OFFSET

RESULT

MOV

AH,

09H

INT

21H

MOV

AH,

4CH

INT

21HCODE

ENDS

END

BEGIN實驗三算術運算與代碼轉換程序設計一、實驗目的1)掌握算術運算程序的設計方法。2)掌握代碼轉換程序的設計方法。3)進一步掌握各種程序結構。4)純熟掌握和使用用DEBUG調試程序。二、實驗內容1)編制兩個多字節(jié)整數(shù)加法和減法程序,并將結果按十六進制形式顯示在屏幕上。2)編制程序實現(xiàn)二進制定點數(shù)與十進制數(shù)的ASCII碼串之間轉換,并將結果顯示在屏幕上。3)編寫程序計算從鍵盤輸入兩個不超過四位的十進制數(shù)的和、差、積、商,并以十進制形式輸出。4)寫程序把從鍵盤輸入的四位十六進制數(shù)轉換為壓縮的BCD碼,并顯示輸出。5)編寫一通用過程用來將十進制數(shù)(從鍵盤輸入)轉換為P(從鍵盤輸入)進制數(shù)。三、實驗設備PC機一臺四、實驗環(huán)節(jié)1)按程序流程圖編制實驗程序。2)輸入源程序。3)匯編、連接程序,執(zhí)行程序,檢查結果。4)程序的執(zhí)行可用DEBUG的G命令,也可用T命令單步跟蹤執(zhí)行。5)用D命令檢查執(zhí)行結果。五、實驗報告的規(guī)定1)列出源程序。2)對程序中用到的寄存器說明其功能。3)總結算術運算和代碼轉換程序的設計方法。 4)說明如何使用DEBUG進行程序調試的。調試過程中所碰到的問題是如何解決的。Eaxm1:DATASEGMENT?ADB82H,34H,56H,78H,2AH,0BCH,0EFH,00H BDB34H,56H,78H,9AH,0BCH,0EFH,16H LENBEQU$-B LEN2EQU(B-A)*2 RESDBLEN2DUP('?'),'$'DATAENDSSTACKSEGMENTPARASTACK DW20DUP(?)STACKENDSCODESEGMENT ASSUMEDS:DATA,CS:CODE,SS:STACKSTART:?MOVAX,DATA?MOVDS,AX;多字節(jié)相加?MOVSI,0 CLC?MOVCX,LENBLOP1: MOVAL,A[SI]?ADCAL,B[SI]?MOVA[SI],AL?INCSI LOOPLOP1 ADCBYTEPTRA[SI],0;輸出?MOVSI,0?ADDSI,LENB MOVDI,0 MOVCX,LENB+1LOP2: PUSHCX MOVAL,A[SI];高位轉換?MOVBL,AL?MOVCL,4?SHRBL,CL?CMPBL,0AH?JBNEXT1?ADDBL,07HNEXT1: ADDBL,30H?MOVRES[DI],BL INCDI;低位轉換?MOVBL,AL ANDBL,0FH CMPBL,0AH?JBNEXT2 ADDBL,07HNEXT2: ADDBL,30H MOVRES[DI],BL INCDI?DECSI POPCX LOOPLOP2 MOVAH,09H?MOVDX,OFFSETRES INT21H?MOVAH,4CH INT21HCODEENDSENDSTARTExam5:DATASEGMENTSTRING1DB'INPUTYOURM=','$'STRING2DB'INPUTYOURP=','$'REDB8DUP(30H)DATAENDSSTACK1SEGMENTSTACKDW60HDUP(0)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK1START:MOVAX,DATAMOVDS,AXMOVDX,OFFSETSTRING1MOVAH,09HINT21HMOVAH,01HINT21HANDAX,0000FHMOVDL,10MULDLMOVBX,AXMOVAH,01HINT21HANDAL,0FHCLCADDBL,ALADCBH,0MOVDL,0AHMOVAH,02HINT21HMOVDL,0DHINT21HMOVDX,OFFSETSTRING2MOVAH,09HINT21HMOVAH,01HINT21HMOVDH,ALSUBDH,30HMOVDL,0AHMOVAH,02HINT21HMOVDL,0DHINT21HMOVAX,BXMOVBX,0001HMOVDI,OFFSETRELOP1:DIVDHADDAH,30HMOV[DI],AHCBWADDDI,BXCMPAL,0JALOP1MOVCX,08HMOVDI,OFFSETRECLCADCDI,CXLOP2:SUBDI,BXMOVDL,[DI]MOVAH,02HINT21HLOOPLOP2MOVAH,4CHINT21HCODEENDSENDSTART實驗五輸入輸出程序設計一、實驗目的1)掌握輸入輸出程序的編寫方法。2)熟悉系統(tǒng)功能調用的方法。3)熟悉動畫程序的編寫方法。二、實驗內容1)在CRT上每隔一秒連續(xù)顯示字符0-9。編程提醒為了使輸出的字符之間有空格,在每一個循環(huán)中輸出一個0-9的字符和一個空格。為了輸出0-9,置寄存器BL初值為0,每循環(huán)一次使其增量。為了保證輸出是十進制,增量后用DAA調整指令。由于輸出為一位十進制數(shù),用AND0FH指令屏蔽高4位。2)用系統(tǒng)功能調用將‘HELLO’由鍵盤輸入,再從屏幕輸出‘***HELLO***’。3)編制在屏幕上畫線的子程序,調用該子程序畫一矩形。4)編制字母下落一行的子程序,調用該子程序使字母從屏幕頂部下落到底部。5)創(chuàng)建一磁盤文獻,保存從鍵盤輸入的字符串。6)編寫程序用設立系統(tǒng)時間,一方面從鍵盤以十進制數(shù)形式輸入時間,然后修改系統(tǒng)時間,并重新以十進制形式顯示時間。7)編寫程序將屏幕分割成格狀,每一格涂上不同顏色,格數(shù)從鍵盤輸入。8)編寫程序在屏幕上顯示菜單,輸入相應菜單的序號后,選種該菜單項。三、實驗設備PC機一臺四、實驗環(huán)節(jié)?1)

按程序流程圖編制實驗程序。?2)輸入源程序。 3)匯編、連接程序,執(zhí)行程序,檢查結果。4)程序的執(zhí)行可用DEBUG的G命令,也可用T命令單步跟蹤執(zhí)行。

五、實驗報告的規(guī)定1)列出源程序。2)總結輸入輸出程序及動畫的編寫方法。3)總結常用系統(tǒng)調用的功能及調用方法。Exam1:STACKSEGMENTSTACKDB1024DUP(0)STACKENDSCODESEGMENTASSUMECS:CODE,SS:STACKSTART:MOVBL,0LP:MOVDL,20HMOVAH,2INT21HMOVAL,BLADDAL,0DAAANDAL,0FHMOVBL,ALPUSHBXORAL,30HMOVDL,ALMOVAH,2INT21HMOVBX,3E8HLP2:MOVCX,176H;延時1msLP1:PUSHFPOPFLOOPLP1DECBXJNZLP2POPBXINCBLJMPLPCODEENDSENDSTARTExam2:STACKSEGMENTSTACKDB1024DUP(0)STACKENDSDATASEGMENTBUFFDB6,7DUP(?),‘$’DATAENDSINPUTMACROBUFEMOVDX,OFFSETBUFEMOVAH,0AHINT21HENDMPUTCHARMACROCHARMOVDL,CHARMOVAH,02HINT21HENDMCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXINPUTBUFF;讀取字符串?BUFFPUTCHAR0DHPUTCHAR0AH;光標另起一行MOVCX,0003HNEXT:PUTCHAR2AHLOOPNEXTMOVCL,BUFF+1SUB

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論