实验4 [bx]和loop的使用
(1)编程,向内存0:200-0:23F依次传送数据0-63(3FH)。
assume cs:code
code segment
start:mov ax,0
mov ds,ax
mov bx,200h
mov cx,40h
xor al,al
s:mov [bx],al
inc bx
inc al
loop s
mov ax,4c00h
int 21h
code ends
end start
(2)编程,向内存0:200-0:23F依次传送数据0-63(3FH),程序中只能使用9条指
令,9条指令中包括“mov ax,4cOOh”和“int 21h”。
assume cs:code
code segment
start:mov ax,20h
mov ds,ax
xor bx,bx
mov cx,40h
s:mov [bx],bl
inc bl
loop s
mov ax,4c00h
int 21h
code ends
end start
(3)下面的程序的功能是将“mov ax,4c00h”之前的指令复制到内存0:200处,补全
程序。上机调试,跟踪运行结果。
assume cs:code
code segment
MOV Ax,CS
MOV DS,AX
MOV AX,20h
mov es,aX
mov bx,0
mov CX,17H
S:mov al,[bx]
mov es:[bx],al
inc bx
loop S
mov ax,4COOh
int 2lh
code ends
end
提示:
C:\DOCUME~1\ADMINI~1>DEBUG C:\M.EXE
-R
AX=0000 BX=0000 CX=001C DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0B95 ES=0B95 SS=0BA5 CS=0BA5 IP=0000 NV UP EI PL NZ NA PO NC
0BA5:0000 8CC8 MOV AX,CS
-T
AX=0BA5 BX=0000 CX=001C DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0B95 ES=0B95 SS=0BA5 CS=0BA5 IP=0002 NV UP EI PL NZ NA PO NC
0BA5:0002 8ED8 MOV DS,AX
-T
AX=0BA5 BX=0000 CX=001C DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0BA5 ES=0B95 SS=0BA5 CS=0BA5 IP=0004 NV UP EI PL NZ NA PO NC
0BA5:0004 B82000 MOV AX,0020
-T
AX=0020 BX=0000 CX=001C DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0BA5 ES=0B95 SS=0BA5 CS=0BA5 IP=0007 NV UP EI PL NZ NA PO NC
0BA5:0007 8EC0 MOV ES,AX
-T
AX=0020 BX=0000 CX=001C DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0BA5 ES=0020 SS=0BA5 CS=0BA5 IP=0009 NV UP EI PL NZ NA PO NC
0BA5:0009 BB0000 MOV BX,0000
-T
AX=0020 BX=0000 CX=001C DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0BA5 ES=0020 SS=0BA5 CS=0BA5 IP=000C NV UP EI PL NZ NA PO NC
0BA5:000C B91600 MOV CX,0016
-T
AX=0020 BX=0000 CX=0016 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0BA5 ES=0020 SS=0BA5 CS=0BA5 IP=000F NV UP EI PL NZ NA PO NC
0BA5:000F 8A07 MOV AL,[BX] DS:0000=8C
-T
AX=008C BX=0000 CX=0016 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0BA5 ES=0020 SS=0BA5 CS=0BA5 IP=0011 NV UP EI PL NZ NA PO NC
0BA5:0011 26 ES:
0BA5:0012 8807 MOV [BX],AL ES:0000=8C
-T
AX=008C BX=0000 CX=0016 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0BA5 ES=0020 SS=0BA5 CS=0BA5 IP=0014 NV UP EI PL NZ NA PO NC
0BA5:0014 43 INC BX
-T
AX=008C BX=0001 CX=0016 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0BA5 ES=0020 SS=0BA5 CS=0BA5 IP=0015 NV UP EI PL NZ NA PO NC
0BA5:0015 E2F8 LOOP 000F
-P
AX=00E2 BX=0016 CX=0000 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0BA5 ES=0020 SS=0BA5 CS=0BA5 IP=0017 NV UP EI PL NZ NA PO NC
0BA5:0017 B8004C MOV AX,4C00
-P
AX=4C00 BX=0016 CX=0000 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0BA5 ES=0020 SS=0BA5 CS=0BA5 IP=001A NV UP EI PL NZ NA PO NC
0BA5:001A CD21 INT 21
-P
Program terminated normally
-
(1)复制的是什么?从哪里到哪里?
复制的是指令,复制的也是数据,从0BA5:0到0020:0。
(2)复制的是什么?有多少个字节?你如何知道要复制的字节的数量?
好纠结,怎么又问一遍,难道有怎么深意?
复制的是指令,复制的更是数据,23个字节。先用debug把程序写一遍才知道有多少字节的。
注意,一定要做完这个实验才能进行下面的课程。
- [kanwangxue] 感觉楼主很乖的。有点孩子气。呵呵。 01/27 08:58
- [kanwangxue] it界,进去干嘛啊,到时候自己牛比了,首先写一个自己的语言,自己用。进入IT界不就是随波做流吗/?他 01/27 08:57
- [kanwangxue] 哥们,不要为了赚钱而学计算机。 计算机是年轻时候干的, 30岁后可以开始想赚钱,年轻嘛,不要这么悲 01/27 08:50
- [游客] 怎么说? 01/26 16:22
- [游客] 你这不行啊,差远了! 01/10 22:29
- [chinatree] 谢谢你。相信你也会成功的。 01/09 14:22
- [landyking] 哥们儿,好久不见。相信你会成功的。 12/02 23:34
- [chinatree] 哇哇,被挖坟了。莫生气,只是感觉谦虚些好,就算你的程序真的是史上最强的,也别说出来嘛,自己偷着乐就行 11/20 00:41
- [xiaoyao2012] 你的程序和我的程序比较也不见得你的程序又节约空间,在某种意义上说你的程序用了没学的指令,所以不见得你 11/19 15:39
- [heliang6291] 一起加油啊 07/02 02:45
- [游客] 急需一个汇编程序大作业。。。。。。。。。。。。。。。。。。。??? 12/28 16:50
- [游客] 这么多人喜欢你,我嫉妒了。但你不可以喜欢那么多,允许你在我不需要你的时候帮别人。如果我需要立叫立到。 11/13 13:11
- [tily] 兄弟 我来看你啦 呵呵 最近可好呀 09/26 22:17
- [stqcw] 能加我qq吗?1270911891 我在做课程设计2的时候 遇到点问题 09/24 09:16
- [stqcw] 能加我qq吗?1270911891 我的环境还是有点问题。按下A的时候不能显示满屏的A 09/20 09:36
- [stqcw] 牛人 我在xp里面运行王爽 汇编第二版 p280的例子 按下esc键没反应 呀 怎样在虚拟机里配置一 09/17 15:18
- [landyking] 呵呵,交个朋友,共同学习. 09/08 00:03
- [luyingdzx] 能知道你的QQ吗?或者请加一下我的QQ271190440,可以吗 虽然在论坛能获得解答,但是有的问 08/07 21:32