. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->[bx]和loop指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  将一段内存数据倒序的程序  [已解决] 回复[ 6次 ]   点击[ 333次 ]  
regex
[帖 主]   [ 发表时间:2010-01-05 12:02 ]   [引用]   [回复]   [ top ] 
荣誉值:61
信誉值:0
注册日期:2009-12-19 01:51
第五章学习结束啦, 习题也做了不少, 今天编写了一段小程序,算是个总结吧。
【将一段连续地址存贮的数据倒序排列, 比如将地址2000:0 f 反过来排列】

------------------------------------------------------------------------------
d:\asm>type 59b.asm
assume  cs:code
code    segment

        mov ax,2000h
        mov ds,ax
        mov si,0
        mov di,0fh
        mov cx,8

s:      mov al,[si]
        mov ah,0
        mov ah,[di]
        mov [di],al
        mov al,[di]
        mov [si],ah
        inc si
        sub di,1
        loop s

        mov ah,4ch
        int 21h

code    ends
end
----------------------------------------------------------------------------
实验结果:
d:\asm>debug 59b.exe
-e 2000:0 0 1 2 3 4 5 6 7 8 9 a b c d e f
-d 2000:0 f
2000:0000  00 01 02 03 04 05 06 07-08 09 0A 0B 0C 0D 0E 0F ................
-
(过程略)
结果:
-p

Program terminated normally
-d 2000:0 f
2000:0000  0F 0E 0D 0C 0B 0A 09 08-07 06 05 04 03 02 01 00   ................
-
regex
[第1楼]   [ 回复时间:2010-01-05 12:06 ]   [引用]   [回复]   [ top ] 
荣誉值:61
信誉值:0
注册日期:2009-12-19 01:51
sidi还没有学到。 暂时拿来主义一下~~~
scuzg
[第2楼]   [ 回复时间:2010-01-05 12:20 ]   [引用]   [回复]   [ top ] 
荣誉值:307
信誉值:0
注册日期:2009-03-15 23:46
不错哈!格式也很规范,缩进和空行都很讲究。

s:      mov al,[si] 
        mov ah,0         ;这一句可以删除
        mov ah,[di] 
        mov [di],al 
        mov al,[di]      ;这一句可以删除 
        mov [si],ah 
        inc si 
        sub di,1         ;应该用 dec di 替代
regex
[第3楼]   [ 回复时间:2010-01-05 13:42 ]   [引用]   [回复]   [ top ] 
荣誉值:61
信誉值:0
注册日期:2009-12-19 01:51
多谢指点啦。 呵呵·~··
regex
[第4楼]   [ 回复时间:2010-01-05 13:50 ]   [引用]   [回复]   [ top ] 
荣誉值:61
信誉值:0
注册日期:2009-12-19 01:51
减少了6个bytes。刚开始的时候犯了个低级错误, 用ffff段实验, ⊙﹏⊙b汗, 后来才想起来跟咱用的空间只有ffH字节
versaariel
[第5楼]   [ 回复时间:2010-01-05 19:06 ]   [引用]   [回复]   [ top ] 
荣誉值:62
信誉值:0
注册日期:2009-12-03 13:14
蛮好的,呵呵
regex
[第6楼]   [ 回复时间:2010-01-06 18:19 ]   [引用]   [回复]   [ top ] 
荣誉值:61
信誉值:0
注册日期:2009-12-19 01:51
此贴由 贴主 于 [ 2010-01-06 18:19 ] 结贴。 结贴原因:问题已解决
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved