DATAS SEGMENT
x db "x=$"
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES, DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
mov ah,9
lea dx,x 为什么这里我把dx换成si会显示乱码,为什么有时候lea用的是lea di,x
有时候是lea si,x,有时候又是lea dx,x,怎么判断?汇编小白求教
int 21h
MOV AX,4CH
INT 21H
CODES ENDS
END START
INT 21H 是一个系统调用,有很多不同的用法
其中09H是输出字符到屏幕,这个你可以查 dos 手册。
参考:https://blog.csdn.net/bill_ming/article/details/7305269
lea dx 和 lea si 的区别参考:https://bbs.csdn.net/topics/300247084
默认是DS:DX=串地址,'$'结束字符串,如果在数据段定义了常量字符串直接调用即可。如果字符串是作为函数入参,则需要用si