1. 程式人生 > >匯編語言實驗九

匯編語言實驗九

運算 nbsp 一個數 com 分享 指定 代碼 code 段地址

1.補全程序,源代碼如下。

完成在屏幕上輸出內存單元中的十進制兩位數

第一段的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

運行結果如下

技術分享圖片

匯編語言實驗九