鱼C论坛

 找回密码
 立即注册
查看: 5276|回复: 38

[争议讨论] 给大家出道X86汇编题

[复制链接]
发表于 2012-7-26 18:12:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 张国祥 于 2012-7-26 18:14 编辑

实现如图效果:
MathTower.png

我称它为数字塔……
要求:转移指令中只能用loop指令,不允许使用栈及涉及到SS,SP寄存器的指令!
发挥大家的才能吧。这道题我不是原创。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-7-26 19:38:56 | 显示全部楼层
是太简单了没人愿意回答还是什么情况- -现在论坛气氛需要活跃一下啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-26 19:41:43 | 显示全部楼层
数字塔指的是什么呀,我没明白什么意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-7-26 19:44:24 | 显示全部楼层

看我用d命令显示的256字节内存:
0000000000000000
0100000000000000
0120000000000000
0123000000000000
0123400000000000
0123450000000000
0123456000000000
.
.
.
0123456789ABCDEF
形如这样的结构,用X86汇编实现
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-26 19:45:15 | 显示全部楼层
我还不知到你干啥的哪
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-7-26 19:45:49 | 显示全部楼层
の祉崭之殇__ 发表于 2012-7-26 19:45
我还不知到你干啥的哪

看我用d命令显示的256字节内存:
0000000000000000
0100000000000000
0120000000000000
0123000000000000
0123400000000000
0123450000000000
0123456000000000
.
.
.
0123456789ABCDEF
形如这样的结构,用X86汇编实现
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-7-26 19:57:46 | 显示全部楼层
额,莫非我还没解释清楚,,
仔细说一下吧:

在某连续的256B内存中,实现形如如下的结构:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 0 0 0 0 0 0 0 0 0
.
.
.
0 1 2 3 4 5 6 7 8 9 A B C D E F

要求:转移指令中只能用loop指令,不允许使用栈及涉及到SS,SP寄存器的指令!


这样应该很详细了吧~




想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-26 20:53:24 | 显示全部楼层
知道你意思,我不想写指令。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-26 21:37:53 | 显示全部楼层
我知道啦   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-26 21:39:55 | 显示全部楼层
我知道啦            
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-26 21:59:41 | 显示全部楼层
那个0中间的点是什么情况。还是本来就是这样的0?

要洗。我去写写试试……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-7-26 22:15:06 | 显示全部楼层
Potato丶 发表于 2012-7-26 21:59
那个0中间的点是什么情况。还是本来就是这样的0?

要洗。我去写写试试……

DOSBOX里面0都是这样- -我是64位系统
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-7-26 22:15:55 | 显示全部楼层
乄ヤ灬风 发表于 2012-7-26 20:53
知道你意思,我不想写指令。

权当练练手拉~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-26 22:27:24 | 显示全部楼层
路过 受教育啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-26 22:29:05 | 显示全部楼层
assume cs:code

data segment
db 256 dup(0)
data ends

savecx segment
db 16 dup(0)
savecx ends

code segment
potato: mov ax,data
mov ds,ax
mov ax,savecx
mov es,ax
mov bx,10h
mov dx,1

mov cx,0fh

s: mov word ptr es:[0],cx
mov cx,dx
mov al,1
mov si,1

s1: mov [bx+si],al
inc al
inc si
loop s1

inc dx
add bx,10h
mov word ptr cx,es:[0]
loop s

mov ax,4c00h
int 21h


code ends

end potato
111.jpg
要洗。搞定!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-27 02:51:15 | 显示全部楼层
我也写一个:lol
assume cs:code,ds:data
data segment
db 256 dup (?)
data ends
code segment
start:
    mov ax,data
    mov ds,ax
    mov bx,0fh
    mov si,0f0h
    mov cx,0fh
   
s1: mov dx,cx
    mov bx,cx
s2:mov [si+bx],bl
    dec bx
    loop s2
    sub si,10h
    mov cx,dx
    loop s1
   
    mov ax,4c00h
    int 21h
code ends
end start
权限不够,不能上传图片,大家可以自己debug下

点评

- -很不错。。比我少用寄存器和内存单元。效率会更高吧哈哈。  发表于 2012-7-27 10:25

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
Potato丶 + 5 + 5 赞一个!测试通过。倒着写- -很不错。。

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-27 14:27:57 | 显示全部楼层
大家踊跃参与吧!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-7-27 14:53:43 | 显示全部楼层
Potato丶 发表于 2012-7-26 22:29
要洗。搞定!

突然发现我弱爆了……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-7-27 14:55:20 | 显示全部楼层
shadowxh 发表于 2012-7-27 02:51
我也写一个
assume cs:code,ds:data
data segment

哦哦,这个更厉害,我还得加倍学习啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-7-27 14:57:39 | 显示全部楼层
唔,,我用了22行代码,,
assume cs:code
data segment
 db 256 dup (0)
data ends

code segment
        start:
                mov ax,data
                mov ds,ax
                mov ax,0
                mov bx,0
                mov dx,1
                mov si,0
                mov di,0
                mov cx,16
                s0:
                mov bx,cx
                mov cx,dx
                s:
                inc ax
                mov [di+17],al
                inc di
                loop s
                sub di,dx
                add di,16
                xor ax,ax
                add dx,1
                mov cx,bx
                loop s0
                
                mov ax,4c00h
                int 21h
code ends
end start

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-20 12:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表