当前位置: 代码迷 >> 汇编语言 >> 汇编语言ds的有关问题
  详细解决方案

汇编语言ds的有关问题

热度:484   发布时间:2016-05-02 04:51:45.0
汇编语言ds的问题
SSEG  SEGMENT PARA STACK
DW 256 DUP(?)
SSEG ENDS

DSEG SEGMENT
MESS DB 'HELLO',0DH,0AH,'$'
DSEG ENDS

CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START: MOV AX,DSEG
MOV DS,AX
MOV DX,OFFSET MESS//如果这里的DX换成BX就会出现乱码,
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CSEG  ENDS
END  START
这是课本上的程序,在下想知道ds在何时选用dx又在何时选用bx,这两者是怎么区分的?
ds?dx?bx,汇编

------解决方案--------------------
那里,必须使用 DX 是因为 int21h 的 9 功能调用就是这么规定的,待显示的字符串,其地址必须在 DS:DX ,所以若用 BX 来替换 DX int21h 是不承认的,还是会使用 DS:DX 来获得字符串,所以就可能出现乱码了。
------解决方案--------------------
MOV AH,9
INT 21H就决定了你的字符串必须在dx中。
------解决方案--------------------
你调用的是INT21H,这个的参数位置是固定的
  相关解决方案