张国祥 发表于 2012-7-26 18:12:25

给大家出道X86汇编题

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

实现如图效果:


我称它为数字塔……
要求:转移指令中只能用loop指令,不允许使用栈及涉及到SS,SP寄存器的指令!
发挥大家的才能吧。这道题我不是原创。

张国祥 发表于 2012-7-26 19:38:56

是太简单了没人愿意回答还是什么情况- -现在论坛气氛需要活跃一下啊

过默 发表于 2012-7-26 19:41:43

数字塔指的是什么呀,我没明白什么意思

张国祥 发表于 2012-7-26 19:44:24

乄ヤ灬风 发表于 2012-7-26 19:41 static/image/common/back.gif
数字塔指的是什么呀,我没明白什么意思

看我用d命令显示的256字节内存:
0000000000000000
0100000000000000
0120000000000000
0123000000000000
0123400000000000
0123450000000000
0123456000000000
.
.
.
0123456789ABCDEF
形如这样的结构,用X86汇编实现

の祉崭之殇__ 发表于 2012-7-26 19:45:15

我还不知到你干啥的哪

张国祥 发表于 2012-7-26 19:45:49

の祉崭之殇__ 发表于 2012-7-26 19:45 static/image/common/back.gif
我还不知到你干啥的哪

看我用d命令显示的256字节内存:
0000000000000000
0100000000000000
0120000000000000
0123000000000000
0123400000000000
0123450000000000
0123456000000000
.
.
.
0123456789ABCDEF
形如这样的结构,用X86汇编实现

张国祥 发表于 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寄存器的指令!


这样应该很详细了吧~




过默 发表于 2012-7-26 20:53:24

知道你意思,我不想写指令。

牡丹花下死做鬼 发表于 2012-7-26 21:37:53

我知道啦   

牡丹花下死做鬼 发表于 2012-7-26 21:39:55

我知道啦            

Potato丶 发表于 2012-7-26 21:59:41

{:5_94:}那个0中间的点是什么情况。还是本来就是这样的0?

要洗。我去写写试试……

张国祥 发表于 2012-7-26 22:15:06

Potato丶 发表于 2012-7-26 21:59 static/image/common/back.gif
那个0中间的点是什么情况。还是本来就是这样的0?

要洗。我去写写试试……

DOSBOX里面0都是这样- -我是64位系统

张国祥 发表于 2012-7-26 22:15:55

乄ヤ灬风 发表于 2012-7-26 20:53 static/image/common/back.gif
知道你意思,我不想写指令。

权当练练手拉~~

不再等待 发表于 2012-7-26 22:27:24

路过 受教育啦

Potato丶 发表于 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:,cx
mov cx,dx
mov al,1
mov si,1

s1: mov ,al
inc al
inc si
loop s1

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

mov ax,4c00h
int 21h


code ends

end potato

要洗。搞定!{:5_109:}

shadowxh 发表于 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 ,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 14:27:57

大家踊跃参与吧!!!

张国祥 发表于 2012-7-27 14:53:43

Potato丶 发表于 2012-7-26 22:29 static/image/common/back.gif
要洗。搞定!

突然发现我弱爆了……

张国祥 发表于 2012-7-27 14:55:20

shadowxh 发表于 2012-7-27 02:51 static/image/common/back.gif
我也写一个
assume cs:code,ds:data
data segment


哦哦,这个更厉害,我还得加倍学习啊

张国祥 发表于 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 ,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

页: [1] 2
查看完整版本: 给大家出道X86汇编题