assume cs:code
code segment
;做法一
;-----------------------------
mov cx,12
s: mov ax,offffh ;因為需要重複利用ax,所以需要迴圈設定
mov ds,ax
mov dl,ds:[bx] ;將資料複製到dx的低8位中
mov ax,0020h
mov ds,ax
mov ds:[bx],dl ;將資料複製到指定的記憶體單元中
inc bx ;向下乙個單元移動
loop s
;-----------------------------
;做法二,上乙個做法需要重複設定ds,這裡可改進
;-----------------------------
mov ax,0ffffh
mov ds,ax
mov ax 0020h
mov es,ax
mov bx,0
mov cx,12
s: mov dl,ds:[bx]
mov es:[bx],dl
inc bx
loop s
;-----------------------------
mov ax,4c00h
int 21h
code ends
end
assume cs:code
code segment
start: mov ax,cs
mov ds,ax
mov ax,0020h
mov es,ax ;設定複製資料的**和去處
mov bx,0
mov cx,offset last-offset start ;設定**的長度
s: mov al,ds:[bx]
mov es:[bx],al ;實現資料的轉移
inc bx
last: loop s
mov ax,4c00h
int 21h
code ends
end
assume cs:code
code segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
dw 16 dup(0) ;棧空間的使用
start: mov ax,cs
mov ss,ax
mov sp,30h ;棧空間是從後往前新增,棧頂指向30h
mov bx,0
mov cx,8
s: push cs:[bx]
add bx,2
loop s ;將資料段中的0~15單元中的資料壓入棧中
mov bx,0
mov cx,8
s0: pop cs:[bx]
add bx,2
loop s0 ;依次出棧8個字型資料
mov ax,4c00h
int 21h
code ends
end start
assume cs:code,ds:data,ss:stack
date segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
date ends
stack segment
dw 16 dup(0) ;棧空間的使用
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,20h ;棧開始的位址已經不包括data段的內容,則為20h
mov ax,data
mov ds,ax
mov bx,0
mov cx,8
s: push ds:[bx]
add bx,2
loop s
mov bx,0
mov cx,8
s0: pop ds:[bx]
add bx,2
loop s0
mov ax,4c00h
int 21h
code ends
end start
assume cs:code,ds:data
data segment
db 'welcome to masm!'
db 16 dup(0)
data ends
;----------------------------------
;做法一
code segment
start: mov ax,data
mov ds,ax
mov si,0 ;設定資料**的起始位置
mov di,16 ;設定資料去處的起始位置
mov cx,8 ;用暫存器進行複製,只需要8次
s: mov ax,ds:[si]
mov ds:[di],ax
add si,2
add di,2
loop s
mov ax,4c00h
int 21h
code ends
;----------------------------------
;做法二:只利用乙個暫存器就可以實現
code segment
start: mov ax,data
mov ds,ax
mov si,0
mov cx,8
s: mov ax,ds:[si]
mov ds:[si+16],ax
add si,2
loop s
mov ax,4c00h
int 21h
code ends
end start
組合語言實現功能(4)顯示功能
assume cs code,ds data data segment db welcome to masm data ends code segment start mov ax,data mov ds,ax mov bx,0 ds bx指向資料段起始位置 mov ax,0b800h mov es...
組合語言實現階乘
static int fact int n return fact n 1 n public static void main string args 開始遞迴函式呼叫 addiu sp,0,0x10010080 初始化棧位址 壓棧入參 addiu s0,0,5 n 5 sw s0,0 sp n 5...
組合語言實現氣泡排序
氣泡排序 author jrh 2011.7.10 assume ds data data segment a dw 1,4,2,5,7,9,6,3 data ends code segment start mov ax,data mov ds,ax mov cx,8 dec cx lop1 pus...