汇编网第五章测试题目

本文通过一道汇编语言的测试题目,分析了程序的功能和选项的正误。题目涉及将程序段复制到内存特定区域,错误地认为改变`mov ax, code`为`mov ax, start`不影响功能,实际上应改为`mov ax, cs`。同时指出,尽管没有在代码中设定`cx`,但在实际编译和运行中,`cx`包含了程序的长度。" 112027406,10551822,使用Eclipse创建与管理Maven多模块项目,"['eclipse', 'maven', '项目构建', '模块化开发', 'java开发']
摘要由CSDN通过智能技术生成

第五题:
对于如下程序 
     assume cs:code 
     code segment 
      start:mov ax,code 
      mov ds,ax 
      mov ax,0020h 
      mov es,ax 
      mov bx,0 
      s:mov al,[bx] 
      mov es:[bx],al 
      inc bx 
      loop s 
      mov ax,4c00h 
      int 21h 
      code ends 
     end 
     下列说法正确的是______。 
1、  指令mov ax,code改为mov ax,start对程序要实现的功能没有任何影响。 
2、  程序不能通过编译,因为在loop指令之前,没有对寄存器cx进行设定。 
3、  程序实现的功能是将程序的所有指令复制到内存中以0:200h为起始地址的一段内存空间中。 
4、  程序实现的功能是用内存中以0:200h为起始地址的一段内存空间中的数据将程序的所有指令覆盖。 

分析:第一次选的1错了,第二次又选了1 :)
      无耐把这道题目拿到编译器里发现了问题,标号start代表的是偏移地址0。
      对于选项1应该是: 指令mov ax,code改为mov ax,cs对程序要实现的功能没有任何影响。
      对于选项2没有语法错误的情况下编译不会出现问题,且经debug查看了一下,原来cx中存储的恰恰就是程序的长度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值