初学汇编 小疑惑
时间:2010-11-22
来源:互联网
[code=Assembly][/code]
assume cs:code
code segment
mov ax,cs
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx,cx
s: mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
-d es:0 1f
0020:0000 8C C8 8E D8 B8 20 00 8E-C0 BB 00 00 8B C9 8A 07
0020:0010 26 88 07 43 E2 F8 CC 00-4C CD 21 00 00 00 00 00
-d ds:0 1f
0B91:0000 8C C8 8E D8 B8 20 00 8E-C0 BB 00 00 8B C9 8A 07
0B91:0010 26 88 07 43 E2 F8 B8 00-4C CD 21 0C 3C 61 72 45
关于 (es:16)=CC 与 (ds:16)=B8 的疑惑~
哪位大大帮忙看下~ 谢谢~~
assume cs:code
code segment
mov ax,cs
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx,cx
s: mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
-d es:0 1f
0020:0000 8C C8 8E D8 B8 20 00 8E-C0 BB 00 00 8B C9 8A 07
0020:0010 26 88 07 43 E2 F8 CC 00-4C CD 21 00 00 00 00 00
-d ds:0 1f
0B91:0000 8C C8 8E D8 B8 20 00 8E-C0 BB 00 00 8B C9 8A 07
0B91:0010 26 88 07 43 E2 F8 B8 00-4C CD 21 0C 3C 61 72 45
关于 (es:16)=CC 与 (ds:16)=B8 的疑惑~
哪位大大帮忙看下~ 谢谢~~
作者: pangguanzhe1314 发布时间: 2010-11-22
没有给cx赋初值
作者: masmaster 发布时间: 2010-11-22
加载程序的时候, cx的值是程序的长度。所以, 必须给cx赋值。
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
d:\MASM>debug bbb.exe
-u
14C9:0000 8CC8 MOV AX,CS
14C9:0002 8ED8 MOV DS,AX
14C9:0004 B82000 MOV AX,0020
14C9:0007 8EC0 MOV ES,AX
14C9:0009 BB0000 MOV BX,0000
14C9:000C B92000 MOV CX,0020
14C9:000F 8A07 MOV AL,[BX]
14C9:0011 26 ES:
14C9:0012 8807 MOV [BX],AL
14C9:0014 43 INC BX
14C9:0015 E2F8 LOOP 000F
14C9:0017 B8004C MOV AX,4C00
14C9:001A CD21 INT 21
14C9:001C E893E3 CALL E3B2
14C9:001F C3 RET
-g17
AX=00C3 BX=0020 CX=0000 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=14C9 ES=0020 SS=14C9 CS=14C9 IP=0017 NV UP EI PL NZ AC PO NC
14C9:0017 B8004C MOV AX,4C00
-d ds:0 1f
14C9:0000 8C C8 8E D8 B8 20 00 8E-C0 BB 00 00 B9 20 00 8A ..... ....... ..
14C9:0010 07 26 88 07 43 E2 F8 B8-00 4C CD 21 E8 93 E3 C3 .&..C....L.!....
-d es:0 1f
0020:0000 8C C8 8E D8 B8 20 00 8E-C0 BB 00 00 B9 20 00 8A ..... ....... ..
0020:0010 07 26 88 07 43 E2 F8 CC-00 4C CD 21 E8 93 E3 C3 .&..C....L.!....
-q
d:\MASM>
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
d:\MASM>debug bbb.exe
-u
14C9:0000 8CC8 MOV AX,CS
14C9:0002 8ED8 MOV DS,AX
14C9:0004 B82000 MOV AX,0020
14C9:0007 8EC0 MOV ES,AX
14C9:0009 BB0000 MOV BX,0000
14C9:000C B92000 MOV CX,0020
14C9:000F 8A07 MOV AL,[BX]
14C9:0011 26 ES:
14C9:0012 8807 MOV [BX],AL
14C9:0014 43 INC BX
14C9:0015 E2F8 LOOP 000F
14C9:0017 B8004C MOV AX,4C00
14C9:001A CD21 INT 21
14C9:001C E893E3 CALL E3B2
14C9:001F C3 RET
-g17
AX=00C3 BX=0020 CX=0000 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=14C9 ES=0020 SS=14C9 CS=14C9 IP=0017 NV UP EI PL NZ AC PO NC
14C9:0017 B8004C MOV AX,4C00
-d ds:0 1f
14C9:0000 8C C8 8E D8 B8 20 00 8E-C0 BB 00 00 B9 20 00 8A ..... ....... ..
14C9:0010 07 26 88 07 43 E2 F8 B8-00 4C CD 21 E8 93 E3 C3 .&..C....L.!....
-d es:0 1f
0020:0000 8C C8 8E D8 B8 20 00 8E-C0 BB 00 00 B9 20 00 8A ..... ....... ..
0020:0010 07 26 88 07 43 E2 F8 CC-00 4C CD 21 E8 93 E3 C3 .&..C....L.!....
-q
d:\MASM>
作者: masmaster 发布时间: 2010-11-22
引用 1 楼 masmaster 的回复:
没有给cx赋初值
没有给cx赋初值
忘说程序功能了~不好意思~
功能:将汇编指令复制到内存0:200处~
复制完后(es:16)=CC 与 (ds:16)=B8 咋不一样呢?!!
作者: pangguanzhe1314 发布时间: 2010-11-22
mov cx,cx这是什么意思,是否笔误
作者: asmlearn 发布时间: 2010-11-22
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28