类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
写出相应的汇编语言指令。
1,用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储器。
2,用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回存储单元中。
3,写出首地址为KOL的字数组的第6个字送到DX寄存器的指令,要求用寄存器的相对寻址和寄存器的间接寻址。
4,调试汇编一般用什么工具?具体怎样操作,在BCB中怎样做汇编什么的?
网友回答:
大平兄,很高兴在这里see到你,呵呵
1 add word ptr [bx][0b2h],cx
2 add word ptr [0524h],2a59h
3 mov dx,word ptr [kol][5]
4 小的程序偶用debug,看你喜欢啦。
借楼主宝地问一下:
mov bx,20fh 与mov bx,[20fh] 有何区别????
一个是立即数寻址,一个是直接寻址
To diamond101(随需应变的系统) :说白了,前者为直接将20fh传送到BX寄存器,执行后BX寄存器的内容为20fh,后者是将存储器20fh这个有效地址中所装的数据传送到BX,执行后BX中内容为存储器有效地址为20fh这个单元中的内容!!
前者是把操作数直接放到指令中,不用到存储器中去寻找,这样一来效率比较高,速度比较快.
而后者的操作数放在存储器中,需要寻址,直接寻址就是直接给出他的EA就可以了,当然用符号地址可读性会更好一点.
是不是 mov bx,[20fh] 就是把DS:[20fh]的地址中的内容复制一份到BX中?
另外书本中说汇编处理程序的地方分成4段,CS,DS,SS,ES 而且是独立的4块区域,但是DEBUG查看后发现
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0B87 ES=0B87 SS=0B87 CS=0B87 IP=0100 NV UP EI PL NZ NA PO NC
0B87:0100 26 ES:
0B87:0101 8A24 MOV AH,[SI] ES:0000=CD
DS,ES,SS,CS都是一样的地址,十分不解!!