《組合語言(第三版)》王爽,實驗九

2021-08-20 03:27:13 字數 1421 閱讀 2639

不知道為什麼,在win7下用的emu8086,顯示會錯位,到不了中間位置

在網上找了下別人的**,發現即使是在別人那裡能正常顯示在中間位置,複製到我這裡都會顯示為上圖所示的樣子。

下面是**,定義資料段的時候為了後面不用將ascii碼和屬性分開讀取,就定義成如下這樣比較繁瑣的形式了。(其實做的時候第一時間沒想到將ascii碼和屬性分開寫,比如db 'welcome to masm!'    db 02h,24h,71h這樣)

assume cs:code

data segment

;綠色 

db 'w',02h,'e',02h,'l',02h,'c',02h,'o',02h,'m',02h,'e',02h,' ',02h

db 't',02h,'o',02h,' ',02h,'m',02h,'a',02h,'s',02h,'m',02h,'!',02h

;綠地紅色

db 'w',24h,'e',24h,'l',24h,'c',24h,'o',24h,'m',24h,'e',24h,' ',24h

db 't',24h,'o',24h,' ',24h,'m',24h,'a',24h,'s',24h,'m',24h,'!',24h

;白底藍色

db 'w',71h,'e',71h,'l',71h,'c',71h,'o',71h,'m',71h,'e',71h,' ',71h

db 't',71h,'o',71h,' ',71h,'m',71h,'a',71h,'s',71h,'m',71h,'!',71h

data ends    

code segment 

start:

mov ax,data

mov ds,ax

mov ax,0b800h

mov es,ax;找到顯示緩衝區

mov bx,0

mov si,0720h;偏移位址

mov cx,16

s:mov ax,word ptr [bx]

mov word ptr es:[si],ax;12行

mov ax,word ptr [bx+32]

mov word ptr es:[si+0a0h],ax;13行           

mov ax,word ptr [bx+64]

mov word ptr es:[si+140h],ax;14行

add bx,2

add si,2

loop s 

mov ax,4c00h

int 21h                            

code ends

end start

《組合語言》王爽第三版 實驗9

datas segment 此處輸入資料段 db w 00000010b,e 00000010b,l 00000010b,c 00000010b,o 00000010b db m 00000010b,e 00000010b,0,t 00100100b,o 00100100b,0 db m 01110...

王爽 組合語言第三版實驗7

這個題目做了很久,使用了2中方法做出了結果,不過目前在單步除錯時還有點疑問。題目 power idea公司從1975成立一直到1995年的基本情況被定義到了datasg中,程式設計將datasg段中的資料寫入到table段中,並計算21年中的人均收入 取整 結果儲存到table段中 兩種方法我都使用...

王爽《組合語言(第三版)》 實驗七

萌新學彙編 邊學邊練 以下是實驗七的練手 assume cs codesg,ss stack data segment db 1975 1976 1977 1978 1979 1980 1981 1982 1983 db 1984 1985 1986 1987 1988 1989 1990 1991...