马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
自己代码如下:assume cs:code,ds:data
data segment
db 'welcome to masm!'
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,0b872h
mov es,ax
mov cx,16
mov bx,0
mov si,0
mov di,0a0h ;如果要缩短代码这一步我们可以省略
s:mov ax,[si]
mov ah,02h
mov es:[bx],ax
mov ah,24h
mov es:[bx+di],ax ;因为省略了DI定义的话这里就变成了es:[bx+0a0h],ax
add di,di ;这里也可以省略了
mov ah,71h
mov es:[bx+di],ax ;因为省略了DI定义的话这里就变成了es:[bx+140h],ax
inc si
add bx,2
sub di,0a0h ;这里也可以省略了
loop s
mov ax,4c00h
int 21h
code ends
end start
通过以上省略我们就省略了3行代码少了一个di的定义
作业以外的话题:
我觉得大家也可以用栈来写一下这个操作,栈的方法小甲鱼视频中有提到了我就不贴上来了- -
还有如果大家学汇编是以破解为目的来学的话,可以自己不看小甲鱼视频用栈的操作来写加深一下对栈的了解也好
不过我觉得要变成一个反汇编的高手的前提你也是一个写代码的高手(高级语言比如C++),代码写多了自己看一下自己程序的汇编代码然后把自己的程序反汇编从中去了解,我觉得这样的一个经验慢慢的累积才能成为一个反汇编的高手,本人目前也还是菜鸟来的大家共同进步努力吧
|