第一题和第二题要求很简单,写完第一题发现第二题也顺便做了哈哈
assume cs:code ;伪指令
;本程序实现将ffff:0-10H中的数复制到0:200-20b中,也是0020:0-b中
code segment
mov bx,0 ;设置循环变量
mov cx,16;循环12次
myloop:
mov ax,0ffffh
mov ds,ax
mov dl,[bx];先将数据送进dl
mov ax,20h
mov ds,ax
mov [bx],dl;复制进内存单元
inc bx ;bx++
loop myloop
mov ax,4c00h
int 21h
code ends
end
第三题其实也非常简单,有一点要注意就是先debug确定循环次数,因为程序是单字节赋值的,所以要用-u命令得出cx的值,也就是循环次数
assume cs:code
;将mov ax,4c00h之前的指令复制到0:200内存处
code segment
mov ax,cs ;因为cs指向第一条指令啊
mov ds,ax
mov ax,20h
mov es,ax
mov bx,0
mov cx,17h ;这里注意一下循环次数,使用debug -u命令可以找到cx应该设置的值
myloop:
mov al,[bx]
mov es:[bx],al ;按照字节赋值
inc bx
loop myloop
mov ax,4c00h
int 21h
code ends
end