qwert0312 发表于 2020-2-11 13:20

只用王爽前六章的知识,如何来完成这个题目

昨天在别的网站看到个有趣的题目,然后我花了二个小时才将题目理清,做完,大家有兴趣看看,只用王爽前六章的知识,如何来完成这个题目.

一、编写程序在安全空间中实现如下效果:



-d20:0
0020:000000 00 00 00 00 00 00 2A-00 00 00 00 00 00 00 00....... *........
0020:001000 00 00 00 00 00 2A 2A-2A 00 00 00 00 00 00 00...... ***.......
0020:002000 00 00 00 00 2A 2A 2A-2A 2A 00 00 00 00 00 00..... *****......
0020:003000 00 00 00 2A 2A 2A 2A-2A 2A 2A 00 00 00 00 00.... *******.....
0020:004000 00 00 2A 2A 2A 2A 2A-2A 2A 2A 2A 00 00 00 00... *********....
0020:005000 00 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 00 00 00.. ***********...
0020:006000 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 00 00. *************..
0020:00702A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 00****************.

SupKevin 发表于 2020-2-11 14:01

hh 刚刚学完第5章

y294945022 发表于 2020-2-12 02:39

王爽前六章的知识    你说的这是什么东西

qwert0312 发表于 2020-2-12 10:09

y294945022 发表于 2020-2-12 02:39
王爽前六章的知识    你说的这是什么东西

就是王爽汇编语言前六章的知识..也就是4个通用寄存器,栈 loop循环 然后使用这些知识来完成这个题目..

y294945022 发表于 2020-2-12 23:31

qwert0312 发表于 2020-2-12 10:09
就是王爽汇编语言前六章的知识..也就是4个通用寄存器,栈 loop循环 然后使用这些知识来完成这个题目..

你说的具体资源在哪里有看。
还有个问题,这个是汇编,那反汇编和这个有什么关系呢

行星波动 发表于 2020-2-15 14:40

assume cs:code
code segment
                   start: mov ax,20h
                   mov ds,ax
                   mov ax,0                     
                   mov bx,7
                   mov cx,8
                   mov dx,1
s:
   push cx
   mov cx,dx      
   mov bx,ax
   add bx,7         
               s0:
                   movbyte ptr ,2ah
                   add bx,1
                   loop s0

                   mov bx,ax
                   add bx,7
                   mov cx,dx
                s1:
                   movbyte ptr ,2ah
                   sub bx,1
                   loop s1
    add dx,1
    add ax,10h
    pop cx
loop s
                   mov ax,4c00H
                   int 21H
code ends
end start

这样应该就可以把

qwert0312 发表于 2020-2-15 16:27

行星波动 发表于 2020-2-15 14:40
assume cs:code
code segment
                   start: mov ax,20h


代码的问题没有,但是你潜意识里认为20:0段的默认数据都是0,那么如果不是0呢?

行星波动 发表于 2020-2-15 18:19

qwert0312 发表于 2020-2-15 16:27
代码的问题没有,但是你潜意识里认为20:0段的默认数据都是0,那么如果不是0呢?

再加上两个循环将其他位置填为0就可以了吧。。不过要是不限方法的话用上si,di寄存器和jmp指令能省不少麻烦

qwert0312 发表于 2020-2-15 18:47

行星波动 发表于 2020-2-15 18:19
再加上两个循环将其他位置填为0就可以了吧。。不过要是不限方法的话用上si,di寄存器和jmp指令能省不少麻 ...

希望跟你一起学习汇编知识

行星波动 发表于 2020-2-15 19:20

qwert0312 发表于 2020-2-15 18:47
希望跟你一起学习汇编知识

我也是新手上路,还在看王爽的书,有问题可以多交流:lol
页: [1]
查看完整版本: 只用王爽前六章的知识,如何来完成这个题目