1. 程式人生 > >實驗 四 [bx]和loop的使用

實驗 四 [bx]和loop的使用

1. 綜合使用 loop,[bx],編寫完整彙編程式,實現向記憶體 b800:07b8 開始的連續 16 個 字單元重複填充字資料0403H。

程式碼 

assume cs:code
code segment
mov ax,0b800h
mov ds,ax
mov bx,07b8h
mov cx,16
s:mov [bx],0403h
add bx,2
loop s
mov ax ,4c00h
int 21h
code ends
end

2. 綜合使用 loop,[bx],編寫完整彙編源程式,實現向記憶體 0:200~0:23F 依次傳送資料 0~63(3FH)。

(1)必做:綜合使用loop, [bx], mov實現

(2)選做*:利用棧的特性,綜合使用 loop,push 實現(限定僅使用 8086 中已學過 指令實現)

 

(1)程式碼

 

assume cs:code
code segment
mov ax,0
mov ds,ax
mov bx,200h
mov cx,64
s:mov [bx],al
inc bx
inc al
loop s
mov ax,4c00h
int 21h
code ends
end

 

 

(2)程式碼

assume cs:code
code segment
     mov ax,0020h
     mov ss,ax
     mov sp,40h
     mov bh,3fh
     mov bl,3eh
     mov cx,20h
s:push bx
  add bh,-2
  add bl,-2
    loop s
  mov ax,4c00H
  int 21H
code ends
end

3. 教材實驗4(3)(P121)

第一空:cs

第二空:0017h

程式碼:

 assume cs:code

code segment
mov ax,cs          cs段暫存器中儲存的是指向程式程式碼段的段地址。此實驗是將程式的程式碼(按位元組)複製,故將cs暫存器中的指向程式碼的段地址賦值給ax,再通過ax暫存器賦值給ds段暫存器。
mov ds,ax
mov ax,0020H
mov es,ax
mov bx,0
mov cx,0017H     mov ax,4cooh/int 21h它們共佔用了5個位元組。所以在本實驗中我們需要複製的程式碼位元組數是001CH-0005H=0017H
s:mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00H
int 21H
code ends
end