assume cs:code,ds:data,ss:stack
data segment
db'welcome to masm!';定義要顯示的字串(共16位元組)
db 02h,24h,71h;定義字元的屬性
data ends
stack segment
dw 8 dup(0)
stack ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,10h
xor bx,bx;bx清零,用來索引顏色
mov ax,0b872h;算出螢幕第12行中間的視訊記憶體的段起始位置放入ax中
mov cx,3;s3迴圈控制行數,要顯示三個字串外迴圈為3次
s3: push cx;三個進棧操作為外迴圈s3儲存相關暫存器的值
push ax;以防止它們的值在內迴圈中被破壞
push bx
mov es,ax;此時es為螢幕第12行中間的視訊記憶體的段起始位置
mov si,0;si用來索引**列的字元
mov di,0;di用來定位目標列
mov cx,10h
;s1迴圈控制存放的字元,乙個字串中含有10h個位元組內迴圈為10h次
s1: mov al,ds:[si]
mov es:[di],al
inc si
add id,2
loop s1;吃迴圈實現偶位址中存放字元
mov di,1;設定di的值為1,為在視訊記憶體奇數字址中存放字元的顏色屬性做準備
pop bx
mov al.ds:[bx+10h];取消顏色屬性
inc bx
mov cx,10h;第二個內迴圈也為10h
s2: mov es:[di],al
add di 2
loop s2;此迴圈實現奇數字址存放字元的顏色屬性
;以下4句為下一趟外迴圈做準備
pop ax
add ax,0ah;將視訊記憶體的段位址起始位址設定為當前行的下一行
;[在段位址中甲0ah,相當於在偏移位址中加了0a0h(=160d)]
pop cx
loop s3
mov ax,4c00h
int 21h
code ends
end start
乙個彙編小程式
assume cs code,ds data,es table,ss stack stack segment stack db 16 dup 0 stack ends data segment db 1975 1976 1977 1978 1979 1980 1995 dd 16,22,382,13...
JavaScript之實現乙個簡單的Vue
原文出處 wclimb vue的使用相信大家都很熟練了,使用起來簡單。但是大部分人不知道其內部的原理是怎麼樣的,今天我們就來一起實現乙個簡單的vue 實現之前我們得先看一下object.defineproperty的實現,因為vue主要是通過資料劫持來實現的,通過get set來完成資料的讀取和更新...
JavaScript之實現乙個簡單的Vue
vue的使用相信大家都很熟練了,使用起來簡單。但是大部分人不知道其內部的原理是怎麼樣的,今天我們就來一起實現乙個簡單的vue object.defineproperty 實現之前我們得先看一下object.defineproperty的實現,因為vue主要是通過資料劫持來實現的,通過get set來...