彙編實驗三

2023-01-11 09:09:02 字數 1752 閱讀 8441

實驗學時: 2 實驗地點: 二綜實驗日期:2014-11-3

一、實驗目的

掌握彙編程式設計規範,熟悉程式設計環境。

二、實驗內容

1、編寫子程式把字串中的小寫字母轉變為大寫字母(參見教材實驗11)。

2、編寫0號中斷處理程式,使得在除法溢位發生時在螢幕中間顯示「divide error!」(參見教材實驗12)。(請預習第12章並完成實驗,時間不夠則在課後完成)

三、實驗步驟演算法及關鍵**

1.實驗一

assume cs:codesg

datasg segment

db "beginner's all-purpose symbolic instructionn code.",0

datasg ends

codesg segment

begin:mov ax,datasg

mov ds,ax

mov si,0

call letterc

mov ax,4c00h

int 21h

letterc:

s: mov cl,[si]

mov ch,0

jcxz ok

mov al,[si]

比較是否取出來的字元是a~z

cmp al,97

jb s0

cmp al,129

ja s0

and al,11011111b

mov [si],al;變成大寫字母後寫回原單元

s0:inc si

loop s

ok:ret

codesg ends

end begin

2.實驗二

assume cs:code

code segment

start: mov ax,cs

mov ds,ax

mov si,offset do0

mov ax,0;設定ds:si指向源位址

mov es,ax

mov di,200h;設定es:di指向目的位址

mov cx,do0end-do0

cldrep movsb

mov ax,0

mov es,ax

mov word ptr es:[0*4],200h

mov word ptr es:[0*4+2],0

mov ax,1000h

mov bh,1

div bh

mov ax,4c00h

int 21h

do0: jmp short do0start

db "divide error!"

do0start:mov ax,cs

mov ds,ax

mov si,202h

mov ax,0b800h

mov es,ax

mov di,12*160+36*2

mov cx,13

s:mov al,[si]

mov es:[di],al

inc si

add di,2

loop s

mov ax,4c00h

int 21h

do0end:nop

code ends

end start

code ends

end begin

四、實驗小結(簡單說明實驗過程**現的問題和解決方法)

基本上無問題和疑問,通過實驗學習到了顯示字串的方法。

彙編實驗報告三

集美大學 計算機工程學院 實驗報告 1.實驗目的及內容 1.實驗目的 掌握迴圈程式的設計方法。2.實驗內容 程式接收使用者鍵入的乙個關鍵字以及乙個句子,如果句子中不包含關鍵字則顯示 no match 如果句子包含關鍵字則顯示 match 且把該字在句子中的位置用十六進製制數顯示出來。2.實驗環境 p...

彙編 實驗六

練習二 將乙個字單元中的二進位制數以十六進製制數形式顯示在螢幕上 乙個字單元有4個十六進製制數,要將這些十六進製制數按順序顯示,則需要用迴圈移位方法把所要顯示的4位二進位制數移動到最右面,既分離出每個4位,對分離出每個4位 一位十六進製制數 進行轉換 0 9的ascii為30h 39ha,a f的a...

組合語言實驗報告三

實驗三 一.實驗目的 1.掌握程式設計中的子程式結構 2.熟練使用過程偽指令 子程式呼叫和返回等組合語言的指令編寫子程式 3.掌握數制轉換方法 4.掌握利用dos系統功能呼叫進行字元輸入及字元輸出 顯示 的方法。二.程式說明 1 編寫十進位製到十六進製制轉換程式。要求從鍵盤取得乙個十進位制數,然後把...