;the code read 4 bytes from file and print it on screen
bits 16
org 100h
jmp start
filename db 'example.file',0
handle dw 0
buffer db 255
start:
mov ah,3dh
mov al,0
mov dx,filename
int 0x21
mov handle,ax
mov ah,3fh
mov cx,4
mov dx,buffer
mov bx,handle
int 21h
mov dx,buffer
add dx,ax
mov bx,dx
mov byte[bx],'$'
mov dx,buffer
mov ah,9
int 21h
mov ah,4ch
int 21h
答案 0 :(得分:0)
您的缓冲区似乎是一个字节。如果您真正想要的是一个255字节的数组,那么您应该使用(假设这是针对NASM的):
buffer: times 255 dup 0
此外,如上所述,您应该在NASM代码中使用括号来访问地址指向的值。只需mov ax,foo
将foo的地址放在ax中,而不是存储在该地址的值。