1. 程式人生 > >王爽《組合語言》實驗9:顯示字元 解答

王爽《組合語言》實驗9:顯示字元 解答

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

data segment
	db "welcome to masm!"
	; 綠字02h,綠底紅字24h,白底藍字71h
	db 02h,24h,71h
	; 25行,從0開始,算出中間為11,12,13行。偏移量為11*160=1760,12*160=1920,13*16=2080
	; 16個字元,加上顏色屬性,算出列偏移量為(160-16*2)/2 = 64
	dw 1824,1984,2144
data ends

stack segment
	dw 8 dup(0)
stack ends

code segment
start:	mov ax,data
		mov ds,ax
		mov ax,0b800h
		mov es,ax

		mov cx,3
		mov di,0 ;每行的初始地址的遞增量,每個迴圈加2
		mov si,0 ;每次的顏色屬性的遞增量,每個迴圈加1

s:		push cx
		push di
		push si

		mov bx,[19+di] ;取初始地址,19是data資料前兩行佔的大小
		mov bp,[16+si] ;取顏色,16是data資料前一行行佔的大小

		mov di,0 ;迴圈加入字元的遞增量,每次加1
		mov si,0 ;寫入記憶體時字元遞增量,每次加2
		mov cx,16

s0:		mov al,[di]
		mov es:[bx+si],al 
		mov al,[bp]
		mov es:[bx+si+1],al

		inc di
		add si,2
		loop s0

		pop si
		pop di
		pop cx
		inc si
		add di,2
		loop s

		mov ax,4c00h
		int 21h
code ends

end start


相關推薦

組合語言實驗9顯示字元 解答

assume cs:code,ds:data,ss:stack data segment db "welcome to masm!" ; 綠字02h,綠底紅字24h,白底藍字71h db 02h,24h,71h ; 25行,從0開始,算出中間為11,12,13行。偏移量為11*160=1760,12

組合語言 實驗7 定址方式在結構化資料訪問中的應用,用棧實現

assume cs:codesg data segment db '1975','1976','1977','1978','1979','1980','1981','1982','1983' db

-組合語言第三版實驗7

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

組合語言 第二版 實驗七 定址方式在結構化資料訪問中的使用 原始碼

這是學習彙編以來遇到的最繁瑣的一個程式,其實思路理清了也就是那麼回事,但還是花了一整個晚上才把它寫出來,晒晒 assume cs:code data segment db '1975','1976','1977','1978','1979','1980','1981

2017-2018-2 20155230《網絡對抗技術》實驗9Web安全基礎

comm 展示 在服務器 phi fig 人在 attack 添加 sim 實踐過程記錄 輸入java -jar webgoat-container-7.1-exec.jar 在瀏覽器輸入localhost:8080/WebGoat,進入WebGoat開始實驗 目錄

組合語言實驗9

一: 程式碼: 實驗結果: 二: 程式碼: 實驗結果: 三: 程式碼: assume ds:data, cs:code data segment db 'welcome to masm!' db 2H,24H,71H ;字串屬

最強大的組合語言學習環境使用教程

  最強大的王爽組合語言學習環境使用教程 一、前言   這是採用VMwere Workstation 12 pro虛擬機器軟體,搭建的MS-DOS學習環境,在windowsXP/8/10及linux中均可以使用,在這個環境中,我集成了CCDOS中文系統,pdos中文系統,使

python 學習彙總9刪除字元(tcy推薦)

刪除字元 2018/11/13 https://www.cnblogs.com/2bjiujiu/p/7257744.html ================================================================= 1.去掉兩端字串

組合語言綜合研究-函式如何接收不定數量的引數

1、c語言如何傳遞引數 編寫這樣一個程式試驗 void showchar(char a,int b); main() { showchar('a',2); } void showchar(char a,int b) { *(char far *)(0xb8000000 + 160*10 + 80

windows10中最強大組合語言學習環境

一、前言   這是採用VMwere Workstation12 pro虛擬機器軟體,搭建的MS-DOS學習環境,在windowsXP/8/10及linux中均可以使用,在這個環境中,我集成了CCDOS中文系統,pdos中文系統,使用這些系統,可以進行中文輸入與顯示。還集成

資料結構實驗9圖的相關操作(待填坑)

實驗9 姓名: 學號:班級:  8.1 實驗目的 (1) 掌握圖的基本概念。 (2) 掌握圖的儲存結構的設計與實現,基本運算的實現。 (3) 熟練掌握圖的兩種遍歷演算法、遍歷生成樹及遍歷演算法的應用。 8.2 實驗任務 分別設計圖(網)的鄰接矩陣、鄰接表儲存結構,編寫演算法實

組合語言課程設計1

;=============================================================================== ;課程設計1 ;將實驗7中的po

組合語言》(第三版) 實驗8、9

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

組合語言》第三版-實驗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.windows 7下執行可能看不到效果,我這裡是這樣,安裝xp解決。 2.橫向比較,多篇教程綜合看。 程式碼: assume cs:code,ds:data,ss

組合語言實驗10編寫子程式dtoc 解答

assume cs:code data segment ;儲存轉換後的ASCII db 10 dup(0) data ends code segment start: mov ax,12666 mov bx,data mov ds,bx mov si,0

匯編語言 實驗10-3 數值顯示

assume 寄存器 oop 王爽 art 子程序 nds tar sum 1 assume cs:code 2 data segment 3 db 10 dup(0) 4 data ends 5 6 code segment 7 s

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

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

組合語言】(著第三版)實驗

實驗二 實驗任務(一) 實驗前要求我們將書本P74的程式段按理論分析,將結果進行填空。之後用Debug,將該程式段寫入記憶體,逐條執行之後, 根據指令執行後的實際執行的結果填空如下。   mov ax,0021   mov  ax , ffff   &n

組合語言第三版》學習歷程——實驗16

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