微機原理及介面設計總結題

2021-10-25 17:16:42 字數 5624 閱讀 8996

1.從3000h開始的記憶體單元中存放有64個有符號數,要求統計其中負數的個數,並將統計結果存入num單元。程式段如下:

xor dx,dx ;

mov si,3000h ;

mov cx,40h ;

agn: mov al,[si] ;

inc si

test al,80h

jz next

inc dx

next:dec cx ;

jnz agn

mov num,dx ;

hlt2.以data為首址的連續單元中的16位無符號數乘以10。

lea si,data ;

mov ax,[si] ;

shl ax,1 ;*2

mov bx,ax ;

mov cl,2 ;

shl ax,cl ;*8

add ax,bx ;

hlt3.測試bl暫存器中第4位的狀態,並保持原內容不變。程式段如下:

mov cl,4 ;

rol bl,cl ; cf d4

jnc zero ;

ror bl,cl ;

zero: ror bl,cl ;

hlt4.將源串首位址為2000h:1200h開始的100個位元組轉送到首位址為6000h:4000h開始的記憶體單元中。程式段如下:

mov ax,2000h ;

mov ds,ax

mov ax,6000h ;

mov es,ax

mov si,1200h ;

mov di,4000h ;

mov cx,100

cldloop1: movsb

dec cx

jnz loop1

hlt5.分別從source和dest開始存放兩個串長為100個位元組的字串。試比較兩個字串是否相同,若全部相同,則使bx=0;若不相同,則將源串中第乙個不相同字元的偏移位址送bx,不相同字元送al中。

cld位址增加方向

lea si,source ;

lea di,dest ;

mov cx,100 ;

next: cmpsb

jnz stop

dec cx

jnz next

mov bx,00h ;

jmp done ;

stop: dec si

mov bx,si

mov al,[bx

done: hlt

6.在es:string附加資料區首位址開始,按位址減量方向順序存放有100個位元組字串,在其中查詢是否有「a」字元;若有,則將「a」字元所在偏移位址送bx,否則置bx=0。

程式段如下:

std置df=1,位址減量方向

mov di,offset string ;

mov cx,100

mov al,『a

next: scasb

jz stop ;zf=1,到「a」相同的字元,轉stop

dex cx ;沒找到(zf=0),長度減1

jnz next

jmp done

stop: dec di ;字元a所在偏移位址→bx

mov bx,di

jmp exit

done: mov bx,0000h ; 0000h→bx

exit: hlt

7.以mem為首位址的記憶體區域中有10個以非壓縮bcd碼形式存放的十進位制數,它們的值可能是0~9中的任意乙個,現程式設計序將這10個數順序顯示在螢幕上。程式段如下:

lea si,mem

mov cx,10

cldmov ah,02h;功能號(表示單字元顯示輸出)→ah

next: lodsb

add al,30h

mov dl,al ;

int 21h輸出顯示

dec cx

jnz next ;

hlt8.把6000h:1200h單元開始的100個字儲存單元內容清零。可用串儲存指令實現。程式段如下:

mov ax,6000h ;

mov es,ax

mov di,1200h

mov cx,100

cldmov ax,0

rep stosw將100個單元清零

hlt9.在es段中從2000h單元開始存放了10個字元,尋找其中有無字元a。若有則記下搜尋次數(次數放data1單元),並記下存放字元a的位址(位址放data2單元)。

程式段如下:

mov di,2000h ;

mov bx,di

mov cx,0ah ;

mov al,』a

cldrepnz scasb ;直到找到字元a或cx=0

jz found ;找到

mov di,0沒找到使di=0

jmp done

found: dec di ;di1,指向找到的關鍵字所在位址

mov data2,di ;將關鍵字位址送data2單元

inc di

sub di,bx

done: mov data1,di ;將搜尋次數送data1單元

hlt10.有10個無符號位元組資料順序存放在以2000h單元為首位址的資料儲存區中,編寫程式找出其中最大數,並將其存入2200h單元。程式段如下:

naxsta: mov bx,2000h ;

mov al,[bx] ;

mov cx,10 ;

next1: inc bx

cmp al,[bx

jae next2 ;

mov al,[bx] ;

next2: dec cx

jnz next1

mov bx,2200h ;

mov [bx],al

hlt11.在記憶體首位址為table處順序存放了100個帶符號位元組數。編寫程式統計出其中正數、負數和零的個數,分別將個數存入plus、minus和zero單元。

start: xor al,al ;al清零

mov plus,al ;清零

mov minus,al ;清零

mov zero,al ;清零

lea si,table ;

mov cx,100 ;

cld使df=0

check: lodsb取乙個數到al,

or al,al

js next1 ;負,轉next1

jz next20,轉next2

inc plus ;正,plus單元加1

jmp next ;

next1:inc minus

jmp next ;

next2:inc zero ;

next: dec cx

jnz check ;

hlt12.在以data為首位址的記憶體資料段中,存放200個16位帶符號數,找出其中最大和最小數,分別放在以max和min為首位址的記憶體單元中。

start:lea si,data ;

mov cx,200 ;

cldlodsw取資料

mov max,ax ;

mov min,ax ;

dec cx

next: lodsw取下乙個→ax

cmp ax,max ;

jg larger ;

cmp ax,min

jl small

jmp goon ;

larger:mov max,ax

jmp goon ;

small:mov min,ax

goon: loop next

hlt13.有兩個字陣列分別放在首位址為data1和data2的儲存區,陣列長度為100。計算兩陣列對應資料項之和,和值送首位址為sum的資料區中,且當兩陣列對應項均出現「0」時,停止求和。

試編程式段。

mov ax,0

mov si,0ffffh ;初值為-1

mov cx,64h

nzero:inc si

mov ax,data1[si] ;

add ax,data2[si] ;當ax=0,則zf=1

mov sum[si],ax ;

loopnz nzero

hlt14.編寫乙個10ms延時子程式。

dely proc

push bx

push cx

mov bl,2

next:mov cx,4167 ;延時5ms)

y10ms:loop y10ms

dec bl

jnz next

pop cx

pop bx

retely endp

15.寫乙個程式完成多位元組bcd碼相加,並將單位元組加法寫成過程。

data segment

first db 11h,22h,33h,44h

second db 55h,66h,77h,88h

sum db 5 dup

data ends

code segment

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

main proc far

start: mov ax,data

mov ds,ax

mov es,ax

mov si,offset first

mov di,offset sum

mov bx,offset second

mov cx,04

cldclc

aditi: call aaa1

loop aditi

mov al,0

adc al,al

stosb

main endp

aaa1 proc near

lodsb

adc al,[bx]

daastosb

inc bx

retaaa1 endp

code ends

end start

16.編寫程式完成從鍵盤上輸入字串「hello」,並在串尾加結束符「$」。

data segment

string db 10,0,10 dup(?)

data ends

介面設計報告

版本歷史 目錄 0.文件介紹 4 0.1 文件目的 4 0.2 文件範圍 4 0.3 讀者物件 4 0.4 參考文獻 4 0.5 術語與縮寫解釋 4 1.應當遵循的介面設計規範 5 2.介面的關係圖和工作流程圖 5 3.主介面 5 4.子介面a 5 5.子介面b 5 6.美學設計 6 7.介面資源設...

使用者介面設計報告

版本歷史 目錄0.文件介紹 4 0.1 文件目的 4 0.2 文件範圍 4 0.3 讀者物件 4 0.4 參考文獻 4 0.5 術語與縮寫解釋 4 1.應當遵循的介面設計規範 5 2.介面的關係圖和工作流程圖 5 3.主介面 5 4.子介面a 5 5.子介面b 5 6.美學設計 6 7.介面資源設計...

顯示器介面設計

在微控制器系統中,常用的顯示器有 發光二極體顯示器,簡稱led light emitting diode 液晶顯示器,簡稱lcd liquid crystal display 螢光管顯示器。近年來也開始使用簡易的crt,顯示一些漢字及圖形。前三種顯示器都有兩種顯示結構 段顯示 7段,公尺 字型等 和...