|
发表于 2022-8-18 02:25:32
From FishC Mobile
|
显示全部楼层
|阅读模式
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 ms1234 于 2022-8-18 02:49 编辑
今天刚把汇编的第五章看完,
并且把实验四做完了,
然后实验四最后一个题目是把
mov ax, 4c00H上面的指令复制到0:200内存处
就寻思自己写一个程序玩玩,就想了一个
把mov ax, 4c00H上面的指令 (逆) 着复制到
0:200处,并且不用push 和pop指令,看能不能做到
然后我自己写了一个
源代码如下(请各位大佬看看有什么问题吗?)
assume cs:code
code segment
mov ax,cs
mov ds,ax
mov bx,25
mov al,[bx]
mov ax,0020H
mov es,ax
mov bx,0
mov es:[bx],al
mov ax,1
mov dx,1
mov cx,25
s: mov bx,25
sub bx,ax
mov al,[bx]
mov bx,1
add bx,dx
mov es:[bx],al
sub ax,ax
add ax,1
add ax,dx
inc dx
loop s
mov ax,4c00h
int 21h
code ends
end
运行成功了
-d076a:0
076A:0000 8C C8 8E D8 BB19 00 8A-07 B8 20 0O 8E CO BB 0O
076A:0010 00 26 88 07 BB 18 00 8A-0?B8 20 00 8E CO BB 01
d0020:0
0020:0000 20 20 8A 00 18 BB 0788-26 00 00 BB CO 8E 00 20
0020:0010 B8 07 8A00 19 BB D8 BE-C8 8C
反过来复制了(这些是我拍照提取文字弄出来的,会有些误差,但是在debug我对过了,不会有错误)因为不会算字节,所以循环次数就写了25次,所以没有全部复制到 |
|