汇编数据传输问题

来源:百度知道 编辑:UC知道 时间:2024/05/19 00:22:46
从内存单元10000H单元开始,建立OOH~OFH~00H 31个数,该程序从内存CS:0100H开始输入
mov ax,1000
mov ds,ax
mov si,0
mov cl,0f
xor ax,ax
w: mov [si],al
inc si
inc al
dec cl
jnz w
mov cx,10
m: mov [si],al
inc si
dec al
loop m
int 20
写程序。
求(a)该程序从内存CS:

; 本程序通过编译,运行正确
Code Segment
Assume CS:Code,DS:Code
; -----------------------------------------
; 从内存单元10000H单元开始,建立OOH~OFH~00H 31个数,该程序从内存CS:0100H开始输入
org 100h
Start: mov ax,1000h
mov ds,ax
mov es,ax
xor di,di
xor al,al
mov cx,31
cld
Write_Data: stosb
cmp cx,17
jb $+6
inc al
jmp $+4
dec al
loop Write_Data
mov ax,150h
push ax
ret

; 子程序:传送数据块
Moving_Data Proc Near
mov es,ax
xor si,si
xor di,di
mov cx,31
rep movsb
ret
Moving_Data EndP

; -----------------------------------------
; (a)、该程序从内存CS:0150H开始输入,把数据块传送到15050H开始的区域中
org 150h
mov ax,1505h
call Moving_Data ;传送数据块
; -----------------------------------------
; (b)、用串指令MOVSB,把数据块传送到15150H开始的区域,该程序从内存CS:0200H开始输入
mov ax,1515h