将buffer缓冲区的偏移地址存到dx寄存器里面。
[DX],这是寄存器间接寻址。但是,寄存器间接寻址,只能用 BX、BP、SI、DI。你却用了 DX!Intel 公司,还没有研发出来呢。Intel 公司,是不会认错的。所以,犯错的,只能就是你。
1、主要的错误是 dx 不能作为 间址寄存器,间址寄存器只能使用 bx、si、di 等。2、次要的错误是 未明确 传送数据的大小,但offset 隐含是 字数据,故汇编程序虽提示错误,但可通过汇编、连接,可正确运行。
第一个100是你键入的字符串的最大个数,第二个位置是?,调用后会把实际个数填入,第三个位置开始才是存放键入的字符串
l1可能是变量,也可能是标号。所以这句话意思是将l1的偏移地址传给dx。取l1的段基址用mov ds,seg l1.
mov dx,offset string 这条指令的功能是:把变量string的偏移地址送给dx寄存器。OFFSET是偏移量属性操作符,它返回该标识符离它所在段的段地址有多少字节。offset是个伪操作符,在编写源程序的时候使用。假设有下面变量定义:FIRST DD 12345678H, 0 ;数据段的变量定义 SCORE DW ?, 12H NAME DB 10 ...
DX+2.举个例子:org 100h mov dx, offset buffer mov ah, 0ah int 21h jmp print buffer db 10,?, 10 dup(' ')print:xor bx, bx mov bl, buffer[1]mov buffer[bx+2], '$'mov dx, offset buffer + 2 mov ah, 9 int 21h ret 需要注意的就是这些,希望能帮到你 ...
MOV AH,9 MOV DX,OFFSET BUF+2 INT 21H EXIT:MOV AH,4CH INT 21H CODE ENDS END BEG (注:(1)不能有多余的空格,例:操作码和操作数之间空格只有一位;操作数和操作数之间不能有空格。(2)字符全部大写,并且为半角字符。(3)指令之间用一个空格分开...
MOV BX, OFFSET BLOCK,就是把BLOCK 的内存地址值(是一个相对值) 装入BX ADD BX, (6–1)*2 ,取得第6个字的相对位置 MOV DX, [BX],寄存器间接寻址,获得地址为BX的字的内容到DX。
offset是取地址意思,该语句的意思就是将crlf的地址赋值给dx