显示来自 bufor 程序集 8086 的数据的方法

way to display data from bufor assembly 8086

我在程序集 8086 中有程序。我必须从文本文件加载一个字符并将其加载到过程中。 我在 bufor 中访问数据有问题我想获取此字符的 ascii 代码。

            mov cx,0        
            mov dx,0       
petla:
            mov ax,4200h
            int 21h


            mov dx,offset Text
            mov cx,1
            mov ah,3fh          
            int 21h  

            mov dx,offset Text
            mov ah,9h           
            int 21h
            mov dx,offset Text
            mov Ton,dl
            call Sound         

            inc licznik
            mov dx,counter
            mov cx,0
            cmp dx,lenght
            JNZ petla
.
.
.
Text db 30000 dup ('$') ;

我想在这部分获取 char ascii 数字:

mov Ton, This Ascii

此程序在我的 txt 文件中的文本行上进行迭代。它看起来像这样

Hello word
0 -> H
1 -> e
2 -> l
3 -> l

这个字符一直保存在缓冲区文本和注册表中,我一直有 000F

Text db 30000 dup ('$') ;

定义了一个非常大的缓冲区,但是

mov dx,offset Text
mov Ton,dl

将使用缓冲区偏移地址的低字节加载您的 Ton 变量。正如您所发现的那样,这将始终是相同的值。

要获取存储在缓冲区中的第一个字符,您需要编写(MASM语法):

mov al, Text
mov Ton, al

尽管这是首选方式,但您不仅限于上述方式。
下一个片段也可以工作。仅供参考:

mov si, offset Text
mov dl, [si]
mov Ton, dl

还有

mov si, offset Text
mov di, offset Ton
movsb                 ; Expects DS == ES