汇编语言 王爽 第四版 实验4

13 篇文章 4 订阅

汇编语言 王爽 第四版 课后检测点 课后实验 持续更新~~

实验4 [bx]和loop的使用

1

编程,向内存0:200~0:23f依次传送数据0~63(3fh)

assume cs:code
code segment
	
	mov ax,0
	mov ds,ax;设置ds=0
	
	mov bx,200h;设置从200h开始
	mov cx,64;循环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,4c00hint 21h

0000:0200-0000:023F等同于0020:00-0002:3F

这里可以改一下,把bx和al合并一下

assume cs:code
code segment
	
	mov ax,20h
	mov ds,ax;设置ds=0
	
	mov cx,64;循环64次
	mov al,0;传送的数据
	
s:	mov [al],al
	inc al
	loop s
	
	mov ax,4c00h
	int 21h
	
code ends
end

3

补全下面的程序,其功能是将mov ax,4c00之前的指令复制到内存0:200处,补全程序,上机调试,跟踪运行结果

提示:

  1. 复制了什么?从哪里到哪里?
  2. 复制的是什么?有多少字节,你如何知道要复制的字节数量?
assume cs:code
code segment

    mov ax,___
    mov ds,ax;ds的地址为ax
    mov ax,0020h
    mov es,ax;es是20h
    mov bx,0
    mov cx,___
    
s:	mov al,[bx];将ds;bx的值赋值给al
    mov es:[bx],al;将al的值赋值给es[bx]
    inc bx;bx++
    loop s

    mov ax,4c00h
    int 21h

code ends
end

不好意思看了一下答案,第一个空那里应该填cs,因为需要将mov ax,4c00之前的指令复制到内存0:200处,那么程序开始就是cs:ip,所以段地址是cs

第二个空填17,可以用debug的u命令看出来,在mov ax,4c00h前一共有17个字节

在这里插入图片描述

04ae:000004ae:0010,一共17字节

  • 32
    点赞
  • 112
    收藏
    觉得还不错? 一键收藏
  • 18
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值