. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->包含多个段的程序
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  本单检测题中关于ax值的一道题  [待解决] 回复[ 6次 ]   点击[ 474次 ]  
release_lag
[帖 主]   [ 发表时间:2009-11-30 16:55 ]   [引用]   [回复]   [ top ] 
荣誉值:3
信誉值:0
注册日期:2009-10-27 16:12
原题如下:
assume cs:code   
code segment   
start: mov ax,3  
       jmp s1  
s: mov bx,0  
   mov ax,bx  
s1: mov cx,3  
s2: add ax,2  
    loop s2  
s3: mov ax,4c00h  
    int 21h  
code ends  
end s  
上面代码执行s3处的指令之前,ax的值是____。  
 1、  9  
 2、  6  
 3、  5  
 4、  2  
这一小题我的答案是__2__

我看到有人答第一个选项9的

我只问一句:
第一:程序入口处是S,意思是不是说,在S段之前的那些程序不会执行,除非后面遇到跳转???
~~~~~~
~~~~~~
PS:jmp 这个跳转指令前面没学过....
假设,程序入口处是标记start处,那么,在执行过程中,各段的执行顺序应该是什么样子的???
执先到JMP S1,的时候,跳转到S1处,这个段的程序执行完之后,是否应该执行s?
当执行完S之后,此时的S1还会不执行?还是说,
JMP跳转指令之后,就按顺序往下执行???
tinyparticle
[第1楼]   [ 回复时间:2009-12-01 15:03 ]   [引用]   [回复]   [ top ] 
荣誉值:188
信誉值:4
注册日期:2009-07-05 19:26
我只问一句: 
第一:程序入口处是S,意思是不是说,在S段之前的那些程序不会执行,除非后面遇到跳转??? 
==================================================================================
就这题来讲理解没错

PS:jmp 这个跳转指令前面没学过.... 
==================================================================================
这个指令在第二章就有介绍过的,再看下书P32页吧

假设,程序入口处是标记start处,那么,在执行过程中,各段的执行顺序应该是什么样子的??? 
==================================================================================
入口为START处,执行顺序如下,S段将不会被执行,最终ax值为9
assume cs:code    
code segment    
start: mov ax,3   
s1: mov cx,3   
s2: add ax,2   
    loop s2   
s3: mov ax,4c00h   
    int 21h   
code ends   
end start
release_lag
[第2楼]   [ 回复时间:2009-12-01 15:22 ]   [引用]   [回复]   [ top ] 
荣誉值:3
信誉值:0
注册日期:2009-10-27 16:12
谢谢楼上的,我理解了,程序至上而下运行,因为遇到指令JMP S1,这时,程序会跳到S1处,然后继续向下运行。。。

jmp 这个指令第二篇讲的是改变cs:ip的值,那jmp S1的意思就应该是说:无条件跳转至S1处.是这样理解的吧?

如果遇到的不是跳转指令,而只是调用,这时候运行过S1之后,还会继续运行S段,对吧?
xiexie99
[第3楼]   [ 回复时间:2009-12-01 15:42 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-11-24 14:20
我想问一下你们的检测题都是那来的?书上没有啊。。
release_lag
[第4楼]   [ 回复时间:2009-12-01 16:45 ]   [引用]   [回复]   [ top ] 
荣誉值:3
信誉值:0
注册日期:2009-10-27 16:12
博客里面的
进入博客之后,点做检测题就有了啊
versaariel
[第5楼]   [ 回复时间:2009-12-16 11:05 ]   [引用]   [回复]   [ top ] 
荣誉值:62
信誉值:0
注册日期:2009-12-03 13:14
引用2楼
如果遇到的不是跳转指令,而只是调用,这时候运行过S1之后,还会继续运行S段,对吧?
-------------------------------------------------------------------
那要看具体的指令了,而且不仅仅是看指令,明白返回指令为什么会返回原来的地方执行,CS:IP又是通过什么途径获得返回地址的,这样就心里就有底了,一点愚见
release_lag
[第6楼]   [ 回复时间:2009-12-16 13:06 ]   [引用]   [回复]   [ top ] 
荣誉值:3
信誉值:0
注册日期:2009-10-27 16:12
谢谢楼上的,现在学到第十章再回过头来看这题,就明白了
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved