汇编语言王爽第三版第五章实验四20190507

1.编程,向内存0:200-0:23F依次传送数据0~63(3FH)

assume cs:code

code segment

mov ax,0

mov ds,ax

mov bx,200h

mov cx,64

mov al,0

s:mov [bx],al

inc bx

inc al

loop s

mov ax,4c00h
int 21h

code ends

end

2.编程,向内存0:200-0:23F依次传送数据0~63(3FH),只能使用9条指令。
其中包括mov ax,4c00h 和int 21h

分析:

除去两条后,现在只能剩7条了。
那么再来看下,
cx=64
loop s 
又占了两条
只剩下五个位置了。
这时候就要简化上面的程序了
这时候就要从改变段的表示入手了

代码:

assume cs:code

code segment

mov ax,20h(为了简化代码)
mov ds,ax

mov bx,0

mov cx,64

s:mov [bx],bl

inc bx//换成bl也可以
loop s

mov ax,4c00h

int 21h

code ends

end

注意到低位加的时候是相同的,简化了代码

3.补全下面的程序,其功能是将“mov ax,4c00”之前的指令复制到内存0:200处。

assume cs:code

code segment

mov ax,cs//由于复制的是内存中的数据,而cs:ip指示了内存中的地址,所以将cs的值传递给ax。

mov ds,ax

mov ax,0020h

mov es,ax

mov bx,0

mov cx,17h//前面的源程序在内存中总共占了23字节,这个是将源程序编译连接之后用debug里面的U命令查看即可

s:mov al,[bx]

mov es:[bx],al

inc bx

loop s

mov ax,4c00h

int 21h

code ends

end

猜你喜欢

转载自blog.csdn.net/qq_43504939/article/details/89930057
今日推荐