匯編語言實驗九
完成在屏幕上輸出內存單元中的十進制兩位數
第一段的db中只含有一個數字12,其只占即ds:[0]的位置,將商保存後面字節的位置
assume cs:code, ds:data ds:datadata segment db 12 db 0,0 ;前一個字節用於保存商,後一個字節用於保存余數 data ends code segment start: mov ax, data mov ds, ax ;補全指令,使得ds <-- data段地址 mov ah, 0 mov al,ds:[0] ;ax <-- data段字節單元的被除數12 mov bl, 10 div bl mov ds:[1],al ;補全代碼,讓商保存到data段註釋中指定的單元 mov ds:[2], ah ;補全代碼,讓余數保存到data段註釋中指定的單元 mov ah, 2 mov dl,ds:[1] ;補全代碼,使得d1 <-- data段中保存的商的字節單元數值 add dl, 48 ;補全代碼,使得d1中的數值轉換為數字字符 int 21h mov ah, 2 mov dl, ds:[2] ;補全代碼,使得d1 <--. data段中保存余數的字節單元數值 add dl, 48 ;補全代碼,使得d1中的數值轉換為數字字符 int 21h mov ax, 4c00h int 21h code ends end start 運行結果如下2.補全程序,源代碼如下。
完成在屏幕上輸出 data 段定義的 5 個十進制兩位數,數據和數據
之間以空格間隔。
需要將db中的5個數字完成除法運算,可以運用到loop指令來進行使用
assume cs:code, ds:data
data segment
db 12,35,96,55,67
data ends
code segment
start:mov ax,data
mov ds,ax
mov cx,5h
mov bp,0
s: mov ah,0
mov al,ds:[bp]
mov bl,10
div bl
mov ds:[5],al
mov ds:[6],ah
mov ah,2
mov dl,ds:[5]
add dl,48
int 21h
mov ah,2
mov dl,ds:[5]
add dl,48
int 21h
mov ah,2
mov dl,32
int 21h
inc bp
loop s
mov ax,4c00h
int 21h
code ends
end start
運行結果如下
3.補全程序,源代碼如下
在屏幕的中間分別顯示綠色,綠底紅色,白底藍色的字符串‘welcome to masm!’
assume ds:data cs:code
data segment
db ‘welcome to masm‘
db 2h,24h,71h
data ends
code segment
start:mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax
mov bx,0
mov bp,16
mov cx,16
s0: mov ax,[bx]
mov es:[bx+720h][si],ax
mov al,2h
mov es:[bx+721h][si],al
inc bx
inc si
loop s0
mov bx,0
mov cx,16
mov si,160
s1: mov ax,[bx]
mov es:[bx+720h][si],ax
mov al,24h
mov es:[bx+721h][si],al
inc bx
inc si
loop s1
mov bx,0
mov cx,16
mov si,320
s2: mov ax,[bx]
mov es:[bx+720h][si],ax
mov al,113
mov es:[bx+721h][si],al
inc bx
inc si
loop s2
mov ax,4c00h
inc 21h
code ends
end start
運行結果如下
匯編語言實驗九