組合語言程式設計指導手冊

2021-03-04 01:20:10 字數 6191 閱讀 1316

《微機原理與接**術》實驗指導手冊

(內部資料)

2023年9月

巫宗賓、薛培根

說明一:通訊專業(必做實驗1、3、4、9、10)

二、電子專業(必做實驗1、3、4、5、6、8、9、10)

三、計算機專業(必做實驗3、4、5、6、7、8、9、10)

四、計算機/文秘(必做實驗3、4、5、6、7、8、9、10)

五、其餘實驗可以選做

實驗一:多字元輸出

一、實驗目的

1、 初步掌握組合語言程式的建立、編譯、連線、執行等過程

2、 了解簡單程式設計方法

3、 掌握dos中斷呼叫方法

4、 掌握匯程式設計序的結構

二、實驗內容

設資料段有乙個字串x,其定義如下:

x db 「hello,world$」請呼叫dos中斷02h,輸出字元,採用迴圈程式設計。

三、參考程式

data segment

x db 「 hello,world$」

data ends

code segment

assume cs:code,ds:data

start: mov ax,data

mov ds,ax

dec si

mov cx,0bh

ok mov ah,02h

int 21h

loop ______

mov ah,4ch

int 21h

code ends

end start

實驗二:字串輸出

一、實驗目的

1、 了解簡單程式設計方法

2、 掌握dos中斷呼叫方法

3、 掌握匯程式設計序的結構

二、實驗內容

設資料段有乙個字串x,其定義如下:

x db 「hello,world$」

請呼叫dos中斷09h,輸出字串。

三、參考程式

data segment

x db 「hello,world$」

data ends

code segment

assume cs:code,ds:data

start: mov ax,data

mov ds,ax

mov ax,seg x

mov ds,ax

lea dx ,x

mov ah,09h

int 21h

mov ah,4ch

int 21h

code ends

end start

實驗三:字串操作

一、實驗目的

1、 了解字串程式設計方法

2、 掌握dos中斷呼叫方法

3、 掌握匯程式設計序的結構

二、實驗內容

設資料段有乙個字串x,其定義如下:

x db 「hello,world$」,附加段有一字串y,其定義如下

y db 12 dup(?),完成x 傳送到y,並呼叫dos中斷09h,輸出字串y。

三、參考程式

data segment

x db 「hello,world$」

data ends

extra segment

y db 12 dup(?)

extra ends

code segment

assume cs:code,ds:data,es;extra

start: mov ax,data

mov ds,ax

mov ax,extra

mov es,ax

lea si,x

lea di,y

mov cx,0ch

cldrep movsb

mov ax,seg y

mov ds,ax

lea dx ,y

mov ah,09h

int 21h

mov ah,4ch

int 21h

code ends

end start

實驗四:小寫字母轉換為大寫字母

一、實驗目的

1、 了解字串程式設計方法

2、 掌握dos中斷呼叫方法

3、 掌握匯程式設計序的結構

4、掌握鍵盤輸入dos中斷呼叫

5、掌握ascii碼轉換機制

二、實驗內容

設資料段有乙個位元組變數x,其定義如下:x db ?,從鍵盤輸入x的小寫字母,當輸入回車結束,並將x轉換為大寫字母,輸出x。

三、參考程式

data segment

x db ?

data ends

code segment

assume cs:code,ds:data

start: mov ax,data

mov ds,ax

lea si,x

mov bx,0

ok:mov ah,01h

int 21h

inc bx

mov byte ptr [si],al

inc si

cmp al,0dh

jnz ok

dec bx

lea si ,x

mov cx,bx

ok1:sub byte ptr [si],20h

inc si

loop ok1

mov byte ptr [si],』$』

mov ax,seg x

mov ds,ax

lea dx,x

mov ah,09h

int 21h

mov ah,4ch

int 21h

code ends

end start

實驗五:多位bcd碼加法運算

一、實驗目的

1、 了解bcd程式設計方法

2、掌握鍵盤輸入dos中斷呼叫

3、掌握ascii碼與十六進製制轉換機制

二、實驗內容

設資料段有兩個多位bcd碼資料x,y其定義如下:

x db 33h,39h,31h,37h,34h

y db 36h,35h,30h,38h,32h

完成x=x+y,輸出x。

三、參考程式

data segment

x db 33h,39h,31h,37h,34h

y db 36h,35h,30h,38h,32h

data ends

code segment

assume cs:code,ds:data

start: mov ax,data

mov ds,ax

mov ax,seg x

mov ds,ax

lea dx,ax

mov ah,09h

int 21h

mov dl,』+』

mov ah,02h

int 21h

mov ax,seg y

mov ds,ax

lea dx,y

mov ah,09h

int 21h

mov dl,』=』

mov ah,02h

int 21h

lea si x

mov cx,5

add si ,4

ok1:sub byte ptr [si],30h

dec si

loop ok1

lea si y

mov cx,5

add si ,4

ok2:sub byte ptr [si],30h

dec si

loop ok2

lea si x

lea di ,y

mov cx,5

clc ok3:mov al,byte ptr [si]

add al,byte ptr [di]

aaamov byte ptr [si],al

inc si

inc di

loop ok3

lea si,x

mov cx,5

ok4:add byte pte [si],30h

inc si

loop ok4

lea si,x

add si,4

mov cx,5

ok5:mov dl,byte ptr[si]

mov sh,02h

int 21h

dec si

loop ok5

mov ah,4ch

int 21h

code ends

end start

實驗六:圖形程式設計

一、實驗目的

1、 了解bios程式呼叫方法

2、掌握組合語言程式結構

3、掌握圖形程式設計機制

二、實驗內容

在品紅的背景下,顯示5個淺綠色閃爍的星號

三、參考程式

code segment

assume cs:code

satrt:mov ah,00h

mov al,03h

int 10h

mov ah,09h

mov al,』*』

mov bh,0

mov bl,0dah

mov cx,5

int 10h

mov ah,4ch

int 21h

code ends

end start

實驗七:排序程式設計

一、實驗目的

1、 掌握迴圈程式設計方法

2、掌握組合語言程式結構

3、掌握排序程式設計機制

二、實驗內容

在資料段有資料塊x,存放10個無符號數,要求將x從小到大排序

三、參考程式

data segment

x db 6,23,41,24,3,45,12,2,98,43

data ends

code segment

assume cs:code,ds:data

satrt:mov ax,data

mov ds,ax

mov si,offset x+0ah

mov cx,000ah

mov bl,0ffh

a:cmp bl,0ffh

jnz a4

mov bl,00h

dec cx

jz a4

push si

push cx

a2:dec si

mov al,[si]

dec si

cmp al,[si]

jnc a3

xchg al,[si]

mov [si+01h],al

mov bl,0ffh

a3:inc si

loop a2

pop cx

pop si

jmp a1

a4:mov ah,4ch

int 21h

code ends

end start

實驗八:中斷程式設計

一、實驗目的

1、 掌握dos中斷呼叫

2、掌握人機對話程式設計方法

二、實驗內容

要求輸入使用者名稱,然後確認,否則再次詢問姓名

三、參考程式

data segment

messge1 db 0dh,0ah,」what is your name?$」

message2 db 「?(y/n)$」

buf db 30

db ?

db 30 dup(?)

data ends

code segment

assume cs:code,ds:data

start:mov ax,data

mov ds,ax

again:mov ah,09h

mov dx,offset message1

int 21h

mov ah,0ah

lea dx,buf

int 21h

mov bl,buf+1

mov bh,0

mov si,offset buf+2

mov byte ptr [bx+si],』$』

mov ah,02h

mov dl,0ah

組合語言程式設計

實驗報告 軟體學院 一 實驗目的與意義 理解並熟練掌握組合語言程式設計過程中的編輯 彙編 鏈結和除錯等各個步驟,提高對彙編課程內容的理解和組合語言的掌握,通過上機練習加深對課程內容的理解和掌握。通過組合語言編制的程式上機除錯 執行檢驗程式設計是否正確。熟悉和掌握編輯 彙編 連線和除錯四個實用程式的使...

三組合語言程式設計

軟體要求 win98或win2000 masm5.0或masm6.0 含masm link debug等程式 硬體要求 ibm pc及相容機 實驗一非壓縮bcd碼乘法 一 實驗目的 學習程式設計的基本方法和技能,熟練掌握用組合語言設計 編寫 除錯和執行程式的方法。為後續課程打下堅實的基礎。同時熟練掌...

組合語言程式設計A卷

2011級組合語言程式設計課程試題 a卷 合分人複查人 1 用組合語言書寫的程式叫做masm要求該檔案的副檔名是編寫32位windows應用程式應選擇儲存模型。2 組合語言語句有兩種,分別是和3 除外設資料外的資料定址方式有3類,分別稱為 和定址。4 進行windows應用程式開發時,需要庫檔案,執...