Assembly 编写一个程序来获取字符';C';从内存中,然后使用平面汇编程序在屏幕上打印它?

Assembly 编写一个程序来获取字符';C';从内存中,然后使用平面汇编程序在屏幕上打印它?,assembly,fasm,Assembly,Fasm,我对汇编编程真的很陌生。自从我们的讲师开始使用FASM教授汇编编程以来,已经两周了。他给了我们上面的问题要用内存寻址来解决,我真的被卡住了。到目前为止,他只教我们mov指令,并没有深入到很多细节。所以,我想知道是否有人能帮我解决这个问题 因为,他告诉我们要从记忆中找回。因此,我使用了一个变量将其存储在内存中。这就是我到目前为止所尝试的 #fasm# org 100h mov ah,2 var db 67 mov bh, [var] mov dl,bh int 21h int 20h

我对汇编编程真的很陌生。自从我们的讲师开始使用FASM教授汇编编程以来,已经两周了。他给了我们上面的问题要用内存寻址来解决,我真的被卡住了。到目前为止,他只教我们mov指令,并没有深入到很多细节。所以,我想知道是否有人能帮我解决这个问题

因为,他告诉我们要从记忆中找回。因此,我使用了一个变量将其存储在内存中。这就是我到目前为止所尝试的

 #fasm#

org 100h

mov ah,2 
var db 67  
mov bh, [var]
mov dl,bh

int 21h
int 20h

这差不多,只是你不想把你的数据放在代码中间。将其放在代码后面,例如:

org 100h

mov ah,2 
mov bh, [var]
mov dl,bh

int 21h
int 20h
var db 67  

这就是@Jester的意思:

org 100h

mov ah,2 
;mov bh, [var]
lea si, [var]  ;"SI" REFERENCES THE VARIABLE. LEA = LOAD EFFECTIVE ADDRESS.
mov dl,[si]    ;GET THE DATA THROUGH THE MEMORY REFERENCE.

int 21h
int 20h
var db 67      ;JESTER IS RIGHT: VARIABLES AT THE BOTTOM.

@JoseManuelAbarcaRodríguez:-我已经编辑并添加了缺少的部分。这就是我的全部。梅丽莎,你的小程序运行得很好,当我运行它时,我在屏幕上看到“C”,有什么问题吗?我用的是EMU8086,是的,不小心。
var db 67
作为
inc bx
执行,它是无害的单字节操作码。把数据放在代码中间不是一个好的做法:“JoeMaNuuelababaloDr.Guez:-谢谢你。”我的讲师让我们先用内存中的数据解决同样的问题,第二次他让我们用寄存器引用变量的内存地址。我认为我使用的是寻址内存,我如何从内存中获取数据并将其打印在屏幕上?谢谢你much@Jester:-编写一个从内存中获取字符“C”的程序,然后将其打印到屏幕上。编写一个从内存中获取字符“C”的程序,但这次,请使用寄存器引用内存地址:-谢谢。我的讲师让我们先用内存中的数据解决同样的问题,第二次他让我们用寄存器引用变量的内存地址。我认为我使用的是寻址内存,我如何从内存中获取数据并将其打印在屏幕上?非常感谢你这个人使用了数据。我相信你的讲师想要的是
leabx[var];mov dl,[bx]
用于寻址。
org 100h

mov ah,2 
mov dl,[var]

int 21h
int 20h
var db 67