王爽彙編第四版 實驗10 編寫子程式最佳答案

2021-10-17 01:29:11 字數 1291 閱讀 9026

子程式描述

名稱: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...