王爽 組合語言 實驗10 1

2021-05-21 19:44:06 字數 1203 閱讀 2169

assume cs:code,ds:data

data segment

db 'welcome to masm!',0

data ends

code segment

start:mov dh,8

;行號

mov dl,3

;列號

mov cl,2

;顏色

mov ax,data

mov ds,ax

mov si,0

;ds:si

指向data segment

定義的資料

call show_str

;呼叫show_str函式

mov ax,4c00h

int 21h

show_str:push cx

;由於前面用

cl來指顏色

push si;

mov al,0a0h

;160

位一行

dec dh

;行數減1

mul dh;al

乘以dh

,積為ax

mov bx,ax

mov al,2

mul dl

;由於每個字佔兩位,低位為字,高位為顏色

sub ax,2

;減去自己本身佔的2位

add bx,ax

;計算字母顯示的位置

mov ax,0b800h

;寫入記憶體

b8000~bffff

中的內容可以顯示到螢幕上

mov es,ax

mov di,0

;es:di

指向將被寫入的記憶體空間

mov al,cl

;將顏色放到al中

mov ch,0

s:mov cl,ds:[si]

;將ds:si

中的字母放到cl中

jcxz ok

;當cx

中的值為

0時,跳到ok處

mov es:[bx+di],cl;

mov es:[bx+di+1],al;al

中之前儲存了顏色

inc si

add di,2

jmp short s

ok:pop si

pop cx

retcode ends

end start

王爽 組合語言 實驗7

assume cs codesg,ds data ss stack data segment db 1975 1976 1977 1978 1979 1980 1981 1982 db 1983 1984 1985 1986 1987 1988 1989 1990 db 1991 1992 1993...

王爽 組合語言 實驗9

assume cs code data segment db welcome to masm db 00000010b,00100100b,01110001b data ends code segment start mov ax,data mov ds,ax mov si,07c0h 臨時,可調整...

王爽組合語言實驗8

答 這個程式是可以正常返回的。解析 這個程式將 mov ax,4c00h int 21h 放到了start標號的上面,codesg段的開頭,也就是這兩條指令的起始偏移位址是0.這段程式的主要指令是 這幾條。我說明一下這幾條指令的作用。這幾天指令的作用看懂了,還有jmp指令的偏移量也明白了,那麼這題就...