子程式描述
名稱:show_str
功能:在指定的位置,用指定的顏色,顯示乙個用0結束的字串。
引數:(dh)=行號
(cl)=顏色,ds:si指向字串的首位址
返回:無
就用舉例:在螢幕的8行3列,用綠色顯示data段中的字串。
說明:下面貼出**
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
call show_str (注:把ip位址push到棧空間記憶體)
mov ax,4c00h
int 21h (注:書中**結束)
show_str:mov ah,0 (注:這裡開始計算8行3列在螢幕的位置)
mov di,0
mov al,160 (注:一行160個位元組)
mul dh (注:dh等於8,0行開始計算,8行就是8乘以160)
mov di,ax (注:賦值給di)
mov al,2 (注:80列,一列2個位元組,賦值al=2)
mul dl (注:3列,就是3乘以2)
add ax,di (注:用行數字節加上列的位元組=8乘以160+3乘以2.就是要寫入的螢幕位置)
(注:這裡結束計算)
mov bx,ax (注:這裡暫存器的初始化)
mov ax,0b800h (注:這裡是螢幕的視訊記憶體段位址)
mov es,ax
mov ch,0
mov di,0
mov ah,0 (注:暫存器的初始化結束)
s:push cx (注:這裡開始迴圈和寫入字串到視訊記憶體記憶體。直到字串查詢到0為止跳出)
mov cl,ds:[si] (注:cl 等於ds段位址+si的偏移位址)
jcxz ok (注:當cx等於0的時候跳出,然後跳轉標號處)
mov es:[bx+di],cl
pop cx
mov es:[bx+di+1],cl
inc si
add di,2
jmp short s (注:跳轉s標號處,迴圈)
ok:pop cx (注:上面push了一下cx,取出來)
王爽《組合語言》第四版 實驗7
title 王爽 組合語言 第四版 實驗7 tags id 258 categories 這個實驗確實是比較繁瑣,而且我先是手寫的 有很多考慮錯誤的地方,最後話了2個多小時才解決掉。迄今為止最麻煩的程式 assume cs code,es table,ss stack data segment db...
Intel組合語言程式設計(第四版) 勘誤
intel組合語言程式設計 第四版 美 kip r.irvine 著 溫玉傑 張家生 羅雲彬 等譯 第六章,6.3.3.3有符號比較 原文 1 movax,80h 2cmp ax,7fh3ja isabove 4jg isgreater 原文解釋 在上面的例子裡,ja指令並不跳轉,因為無符號數7fh...
模式識別(第四版)上機實驗 2 2 2 5
輸入 m 是l c矩陣,第i列是第i類分布的平均向量,c表示類別 s是l l c矩陣,第i個二維l l成分是i類分布的協方差 p是c維向量,它由類的先驗概率組成 返回值 估計 n列向量的矩陣x,矩陣的每一列都是乙個l維資料向量 行向量y的每i個表示基於第i個資料向量的類 function x,y g...