**
assume cs:code
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
mov ax,4c00h
int 21h
show_str:
push ax
push es
push di
push dx
push bx
push si
mov ax,0b800h ;視訊記憶體顯示位址起始位置
mov es,ax
mov di,0
mov al,0a0h ;每行
dec dh ;行號從0開始算, 所以8-1=7, 0-7
mul dh ;第n-1行
add di,ax
mov al,2 ;每列 0-1 2-3 4-5
dec dl ;與行號同理
mul dl ;第n-1列
add di,ax
mov bl,cl ;儲存著色
s: mov cl,[si] ;從字串首位址開始
mov ch,0
jcxz ok ;迴圈字串每個字元,直到遇見0,跳轉到 標記 ok
mov es:[di],cl ;視訊記憶體顯示規則 每個字元占用兩個位元組 前者儲存字元本身本身
mov es:[di+1],bl ;視訊記憶體顯示規則 後者儲存閃爍、背景、高亮、前景等
add di,2
inc si
loop s
ok:
pop ax
pop es
pop di
pop dx
pop bx
pop si
retcode ends
end start
結果
使用 000f(dx 高位) 4240(ax 低位) / 0a(cx 除數)
結果儲存在 ***x(dx 高位) ***x(ax 低位) xx(cx 餘數)
示例:000f 4240 / 0a
1)0000 000f / 0a = 0001(商) … 0005(餘數)
2)0005 4240 / 0a = 86a0 (商)… 0000 無餘數
3)結果 0001 86a0
assume cs:code
code segment
start: mov ax,4240h
mov dx,000fh
mov cx,0ah
call divdw
mov ax,4c00h
int 21h
divdw: push ax
mov ax,dx
mov dx,0
div cx
mov bx,ax
pop ax
div cx
mov cx,dx
mov dx,bx
retcode ends
end start
結果
assume cs:code
data segment
db 10 dup(0)
data ends
code segment
start: mov ax,12666
mov bx,data
mov ds,bx
mov si,0
call dtoc
mov dh,8
mov dl,3
mov cl,2
call show_str
mov ax,4c00h
int 21h
dtoc: push ax
push bx
push si
mov bx,10
mov si,0
s1: mov dx,0
div bx
add dx,30h
push dx
mov cx,ax
inc si
inc cx
loop s1
mov cx,si
mov si,0
s2: pop [si]
inc si
loop s2
pop si
pop bx
pop ax
retshow_str: push ax
push es
push di
push dx
push bx
push si
mov ax,0b800h ;視訊記憶體顯示位址起始位置
mov es,ax
mov di,0
mov al,0a0h ;每行
dec dh ;行號從0開始算
mul dh ;第n行
add di,ax
mov al,2 ;每列
mul dl ;第n列
add di,ax
mov bl,cl ;儲存著色
s: mov cl,[si]
mov ch,0
jcxz ok
mov es:[di],cl
mov es:[di+1],bl ;視訊記憶體顯示規則
add di,2
inc si
loop s
ok:
pop ax
pop es
pop di
pop dx
pop bx
pop si
retcode ends
end start
顯示結果
王爽《組合語言》 第三版 實驗10解析
assume cs code 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 ...
《組合語言》王爽第三版 實驗9
datas segment 此處輸入資料段 db w 00000010b,e 00000010b,l 00000010b,c 00000010b,o 00000010b db m 00000010b,e 00000010b,0,t 00100100b,o 00100100b,0 db m 01110...
王爽 組合語言第三版實驗7
這個題目做了很久,使用了2中方法做出了結果,不過目前在單步除錯時還有點疑問。題目 power idea公司從1975成立一直到1995年的基本情況被定義到了datasg中,程式設計將datasg段中的資料寫入到table段中,並計算21年中的人均收入 取整 結果儲存到table段中 兩種方法我都使用...