汇编网首页登录博客注册
chinatree的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
友情链接

[2011-08-23 20:04] 实验4    [bx]和loop的使用

实验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把程序写一遍才知道有多少字节的。
注意,一定要做完这个实验才能进行下面的课程。
评论次数(2)  |  浏览次数(637)  |  类型(汇编作业) |  收藏此文  | 

[  tomato   发表于  2011-08-24 08:36  ]

"mov es[bx],al"这句写的有问题;
"loop 09"这句是什么意思?
“你如何知道要复制的字节的数量?”这个你没有回答。

[  chinatree   发表于  2011-08-24 09:36  ]

那两个错误是本来改一下放debug里看一下总共多少字节的,结果居然忘记改回来了。

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码