首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

汇编语言ds的有关问题

2013-07-04 
汇编语言ds的问题SSEG SEGMENT PARA STACKDW 256 DUP(?)SSEGENDSDSEGSEGMENTMESSDB HELLO,0DH,0AH,$DS

汇编语言ds的问题
SSEG SEGMENT PARA STACK
DW 256 DUP(?)
SSEGENDS

DSEGSEGMENT
MESSDB 'HELLO',0DH,0AH,'$'
DSEGENDS

CSEGSEGMENT
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,这个的参数位置是固定的

热点排行