. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->[bx]和loop指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  关于实验4(3)的答案的一些问题  [已解决] 回复[ 4次 ]   点击[ 415次 ]  
zhpsdbx
[帖 主]   [ 发表时间:2011-03-14 17:16 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:1
注册日期:2011-03-07 13:32
assume cs:code 
code segment 
  mov ax,cs 
  mov ds,ax 
  mov ax,0020h 
  mov es,ax 
  mov bx,0 
  mov cx,cx 
s: mov al,[bx] 
   mov es:[bx],al 
   inc bx 
   loop s 
   mov ax,4c00h 
   int 21h 
code ends 
end 
 以上是实验4(3)的答案 但我有些问题第一个 既然 ds等于cs,bx=0了但ip并不是零怎么能读取内容呢难道cs:0等于cs:ip???
 如果把cs改为ds到还是能够理解,因为DS寄存器里存放的就是当前EXE的文件头。但是改了就没意义了
第二个 为什么 mov ds,cs是错误的。而mov ax,cs却正确呢。
zhpsdbx
[第1楼]   [ 回复时间:2011-03-15 00:22 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:1
注册日期:2011-03-07 13:32
以上东西看了第6章就懂了。哎 但看第六章又新多出来一些问题。
oddx
[第2楼]   [ 回复时间:2011-03-16 23:31 ]   [引用]   [回复]   [ top ] 
荣誉值:3
信誉值:0
注册日期:2010-08-24 03:46
为什么 mov ds,cs是错误的。而mov ax,cs却正确呢。

这个问题在 3.4 mov add  sub指令这一节就提到了

LZ没有认真看书, mov 段寄存器,段寄存器 是非法的。

可以自行在debug中测试。
zhpsdbx
[第3楼]   [ 回复时间:2011-03-20 14:52 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:1
注册日期:2011-03-07 13:32
3楼 虽然3.4有提到mov的用法,但你难道会把那些所有的用法都记住。我只记住这里的特殊例子就是mov 段寄存器,段寄存器是错误的。其他都可以用就行了。
zhpsdbx
[第4楼]   [ 回复时间:2011-03-21 14:52 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:1
注册日期:2011-03-07 13:32
此贴由 贴主 于 [ 2011-03-21 14:52 ] 结贴。 结贴原因:问题已解决
得分情况: 2楼(oddx):3分  
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved