汇编语言王爽第三版第五章实验四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
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值