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段,公尺 字型等 和...