1. 程式人生 > >組合語言 第三版 王爽 實驗9 根據材料程式設計

組合語言 第三版 王爽 實驗9 根據材料程式設計

題目:

    

注意事項:

1.windows 7下執行可能看不到效果,我這裡是這樣,安裝xp解決。

2.橫向比較,多篇教程綜合看。

程式碼:

assume cs:code,ds:data,ss:stack

data segment
	db 'welcome to masm!'
	db 02h,24h,71h
data ends

stack segment
	dw 8 dup (0)
stack ends

code segment
start:  
	mov ax,data   
	mov es,ax    ; es指向資料段
	
	mov ax,0B800h
	mov ds,ax    ;ds指向顯示的部分

	mov bx,0     ;顯示偏移 三次每次增加10h	
	mov si,10h   ;顏色的偏移量,三次迴圈每次增加1h
	mov cx,3
	
s0:	             ;三行迴圈
	mov ah,es:[si] ;儲存字元的顏色 一個位元組
	push cx       
	push si

	mov cx,16    ;十六次迴圈
	mov si,0     ;si顯示區域每次的偏移 每次加2
	mov di,0     ;di字元讀取時候每次的偏移 每次加1
s1:		     ;每一行 先放一個ascii再放屬性,放16次
	mov al,es:[di]  ;字元放在al裡
	;mov ds:[bx+si],al  ;低位元組放字元
	mov ds:[bx+si],ax
	
	;mov ds:[bx+si+1],ah ;高位位元組存放顏色
	 
	add si,2
	add di,1
loop s1
	pop si
	pop cx
	add si,1h    ;偏移量為1指向下一個位元組
	add bx,0a0h  ;每行160個字元
	add dx,1h
loop s0

all:
	jmp short all  	;一直迴圈

	mov ax,4c00h
	int 21h
	
code ends
end start


結果:


相關推薦

組合語言 實驗9 根據材料程式設計

題目:      注意事項: 1.windows 7下執行可能看不到效果,我這裡是這樣,安裝xp解決。 2.橫向比較,多篇教程綜合看。 程式碼: assume cs:code,ds:data,ss

組合語言 實驗6 更改大寫字母

題目: 將如圖所示記憶體地址處的小寫字母改為大寫。 注意:si的值每次二重迴圈之前需要重置。 程式碼:assume cs:code,ds:data,ss:stack data segment db '

組合語言 實驗12 編寫0號終端的處理程式

題目: 編寫0號中斷的處理程式,使得在除法溢位發生時,在螢幕中間顯示字串“divide error!”,然後返回dos 程式碼: assume cs:code code segment start:

組合語言 實驗10-2 編寫子程式 之 解決除法溢位問題 divdw

題目: 分析: 1.也就是把dw資料拆成兩個db資料和db相除。 2.注意引數的傳入和傳出。 程式碼: assume cs:code,ss:stack stack segment db 16 dup

組合語言 檢測點2.3

原文 檢測點2.3 (1)下面的3條指令執行後、CPU幾次修改IP?都是在什麼時候?最後IP中的值是多少? MOV AX,BX SUB AX,BX JMP AX 假設 CS=1230H IP=0001H 第一次 CS:IP指向12301H記憶體處,讀取指令MOV AX,BX

組合語言-實驗9 根據材料程式設計

assume cs:code,ds:data data segment ;在資料段定義字串 db 'Welcome to masm!' data ends code segment start: mov ax,data mov ds,ax mov ax,0b800h

實驗 9 根據材料程式設計

(一)     1、補全程式 t1.asm,完成在螢幕上輸出記憶體單元中的十進位制兩位數 2、輸出結果 在該實驗中,需要一位一位輸出,div除法運算   (二) 1. 補全程式 t2.asm,完成在螢幕上輸出 data 段定義的 5 個十進位制兩位數,資料

|實驗9 根據材料程式設計

實驗 9 根據材料程式設計 一、實驗結論 1.補全程式 t1.asm,完成在螢幕上輸出記憶體單元中的十進位制兩位數 原始碼: 執行截圖: 2.補全程式 t2.asm,完成在螢幕上輸出 data 段定義的 5 個十進位制兩位數,資料和資料之間以空格間隔。 原始碼: 執行截圖: 3

組合語言學習歷程——實驗16

編寫包含多個功能子程式的中斷例程 要求: 安裝一個新的int 7ch中斷例程,為顯示輸出提供如下功能: (1)、清屏; (2)、設定前景色; (3)、設定背景色; (4)、向上滾動一行; 入口引數說明如下。 (1)、用ah暫存器傳遞功能號:0表示

-組合語言實驗7

;1. 資料組織 data 中資料當成陣列,table中資料當成結構體。 ;2. data 用si來定址, table 用 bx , di, idata來定址 assume cs:codesg , ss:stacksg data segment    db '1975','1976','1977','1978

組合語言()實驗10-1,2

1.顯示字串 子程式描述: 名稱:show_str 功能:在指定的位置,用指定的顏色,顯示一個用0結束的字串。 引數:(dh)=行號(取值範圍0~24),(dl)=列號(取值範圍0~79), (

Effective Java 讀書筆記——條款9:使用 try-with-resources 語句替代 try-finally 語句

Java 類庫中包含許多必須手動呼叫 close 方法來關閉的資源, 比如InputStream、OutputStream 和 java.sql.Connection。 從以往來看,try-finally 語句是保證資源正確關閉的最佳方式,即使是在程式丟擲異常或

實驗 9 根據材料編程

是我 緩沖 十進制 寫入 空格 我認 進行 image 不同 實驗內容(1) 補全程序 t1.asm,完成在屏幕上輸出內存單元中的十進制兩位數 大部分沒什麽好說的,將數值轉換為數字字符我認為是將數值轉為為ASCII對應的字符,然後我查閱ASCII表發現表中字符與對應數字的

實驗9 根據材料編程

執行 行號 註釋 不難 成功 任務 .com 結合 star 1. 補全程序 t1.asm,完成在屏幕上輸出內存單元中的十進制兩位數 補全得t1。asm如下: 1 ; 在屏幕上輸出內存單元中的十進制兩位數 2 assume cs:code, ds:data 3 da

實驗9 根據材料編程

顯示 單元 nbsp 運行 總結 內存 輸出 位數 藍色 任務一:在屏幕上輸出內存單元中的十進制兩位數。 (1)源程序。 (2)運行結果。 任務二:在屏幕上輸出data段定義的5個十進制兩位數,數據和數據之間以空格間隔。 (1)源程序。 (2)結果。

彙編實驗根據材料程式設計

南京資訊工程大學實驗報告 實驗名稱    實驗九 根據材料程式設計   實驗日期    12.09          &nbs

實驗根據材料程式設計

一、實驗結論 1、原始碼: ; 在螢幕上輸出記憶體單元中的十進位制兩位數assume cs:code, ds:datadata segment db 12 db ?,? ; 前一個位元組用於儲存商,後一個位元組用於儲存餘數data endscode segmentstart: mov ax,data mo

實驗九--根據材料程式設計

實驗內容:   1. 補全程式 t1.asm,完成在螢幕上輸出記憶體單元中的十進位制兩位數 ; 在螢幕上輸出記憶體單元中的十進位制兩位數 assume cs:code, ds:data data segment db 12 db 0h,0h ; 前一個位元組用於儲存商

組合語言》(實驗8、9

下面的程式簡單分析了一下: assume cs:code code segment mov ax, 4c00H int 21h s

《匯編語言》()實驗9解析

src p s 代碼 出棧 語言 註意 指向 .com 第一個 簡介 題目請對照書本 代碼 assume cs:code data segment db ‘welcome to masm!‘ db 02h,24h,71h ; 要求的三個顏色對應的16