. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  第9章检测点1和2  [待解决] 回复[ 1次 ]   点击[ 505次 ]  
84404037
[帖 主]   [ 发表时间:2010-10-22 12:11 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-09-25 21:54
assume cs:code 
data segment
dw stack
data ends
code segment
stack: mov ax,data
       mov ds,ax
       mov bx,0
       jmp word ptr[bx+1]
code ends
end stact
我把setment设为他的偏移不知道对不对,还是直接设0呢,请高手解答
assume cs:code 
data segment
dd 12345678H
data ends
code segment
stack: mov ax,data
       mov bx,0
       mov [bx],bx
       mov [bx+2],code            这地方我先前设的CODE但是编译有错。但是也能执行,结果也正确
                                       不这我设成CS结果也一样。原因何在?
       jmp word ptr ds:[0] 
code ends
end stact


assume cs:code 
code segment
stack: mov ax,2000H
       mov ds,aax
       mov bx,o
     s:mov al,[bx]         先把2000单元的值给al
       mov cx,al           再将al给CX
       jcxz ok             看看cx的值为不为0,如果为0跳到0k地方执行
        inc bx               不是就执行下一步,偏移加1
       jmp short s
    ok:mov dx,bx
       mov ax,4c00H
       int 21H        
code ends
end stact

这题很简单,就是一开始不懂jcxz的用处。但是感觉这个用户不是很大,也就等于C语言的IF语句
mess
[第1楼]   [ 回复时间:2010-10-24 16:16 ]   [引用]   [回复]   [ top ] 
荣誉值:337
信誉值:0
注册日期:2008-01-01 17:48
assume cs:code  
data segment 
dw stack 
data ends 
code segment 
stack: mov ax,data 
       mov ds,ax 
       mov bx,0 
       jmp word ptr[bx+1] 
code ends 
end stact 
我把setment设为他的偏移不知道对不对,还是直接设0呢,请高手解答 
-----------------------
先编译,链接。解决语法错误。
(不要随便用stack关键字,用start不是很好么 呵呵)

注意题意,怎么保证[bx+1]处为零,并且是读出一个字都为零。

 
第二个问题,注意语法。然后可以用debug跟踪。分析,解决。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved