. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->[bx]和loop指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  看我写的实验4.2  [待解决] 回复[ 2次 ]   点击[ 320次 ]  
iomu
[帖 主]   [ 发表时间:2009-03-26 19:08 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-01-06 21:37
assume cs:why

why segment

    mov ax,0020h
    mov ds,ax
    mov bx,0
    mov cx,63
  s:add [bx],bx
  
    inc bx
    loop s
    
    mov ax,4c00h
    int 21h
    
    why ends
    end

我测试的可以,可不知道这样写是不是不规范的汇编
crazyman
[第1楼]   [ 回复时间:2009-03-27 13:54 ]   [引用]   [回复]   [ top ] 
荣誉值:152
信誉值:3
注册日期:2008-01-24 21:26
程序规范和思路没什么问题,不过,有3点我想提示:
1.0~3Fh共有64个数据。
2.add [bx],bx 这里不是add,add是增加,题目要求的是传送。
3.add [bx],bx 还是这里,我们知道,我们移动的数据是字节型的,你用bx是进行字操作,当然,由于你下面是inc bx所以,结果看起来是没有问题的,在这个过程中就是高位被覆盖,不过,最后一个数据高位是没有被覆盖的,虽然它是0,但是,这个思维逻辑上存在漏洞的,我们应该严谨的操作我们数据,让结果100%符合逻辑,这才能锻炼我们的思维。所以,我觉得这里应该add [bx],bl
iomu
[第2楼]   [ 回复时间:2009-03-28 16:48 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-01-06 21:37
谢谢2楼的朋友了   受教
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved