注册 登录
编程论坛 汇编论坛

请教一下下列程序执行后,实际地址0110AH---0110FH中的内容是什么

flyfx1989 发布于 2010-12-18 20:38, 812 次点击
MOV AX,0C0H
MOV DS,AX
MOV BX,0500H
MOV CX,10H
LOP:
MOV [BX],BL
INC BL
LOOP LOP
HLT
 还有就是我有一些基本问题不会
想请教一下MOV BX,2
MOV [BX],BL
MOV AL,[BX]
这些有什么区别啊
我被方括号弄晕了
6 回复
#2
zaixuexi2010-12-18 21:04
1.
win+r->cmd->cd\->回车
C:\>debug
-a 0100
0B6F:0100 mov ax,0c0
0B6F:0103 mov ds,ax
0B6F:0105 mov bx,0500
0B6F:0108 mov cx,10
0B6F:010B mov [bx],bl
0B6F:010D inc bl
0B6F:010F loop 010b
0B6F:0111 hlt
0B6F:0112
-t

AX=00C0  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0B6F  ES=0B6F  SS=0B6F  CS=0B6F  IP=0103   NV UP EI PL NZ NA PO NC
0B6F:0103 8ED8          MOV     DS,AX                                 ;执行完这步DS会是多少?
-

--------------------------------------------------------------------------
你可以在DEBUG中试着操作一下,单步命令t一步一步走,看看寄存器发生了什么变化,
当你执行到hlt命令时,你可以使用
-d 0110:a f
来观察实际地址0110AH---0110FH中的内容是什么
2.
MOV BX,2    ;BX=0002H
MOV [BX],BL ;BL=02H,BX=0002H 把02这个字节大小的值->DS:0002的内存单元中
MOV AL,[BX] ;从DS:0002读取一个字节到AL
括号是表示BX是16位偏移地址,你可以再复习下寻址的概念,几种基本的寻址方式,etc.
指令寻址方式是很重要的,好好看,呵呵.



#3
xiaomarn2010-12-19 19:41
为什么每个程序后面都有HLT(停机)这条指令呢?难道你们都是纯dos?还有那条jmp $指令,很好奇从哪见到的?
ds=c0h,bx=500h,一维地址为c00+500=1100h,bl=00,bh=05,cx=10h,实际地址0110AH---0110FH中的内容都是0
#4
flyfx19892010-12-19 23:23
回复 3楼 xiaomarn
我是一道填空题,参考书给的答案是A,B,C,D,E,F,不懂啊
#5
zaixuexi2010-12-20 00:48
是A~F,答案没错
MOV AX,0C0H
MOV DS,AX
MOV BX,0500H
MOV CX,10H
LOP:
MOV [BX],BL
INC BL
LOOP LOP
HLT
一开始是BL是0,每次BL加1,CX=10H,执行16次,不就是A~F么.
#6
xiaomarn2010-12-20 15:15
恩,没细看,楼上是对的
#7
就此游壹游2010-12-21 19:47
地发发
1