注册 登录
编程论坛 汇编论坛

[求助]学习中的疑问,

走火 发布于 2006-04-26 18:19, 635 次点击
才学汇编,有许多疑问

在使用PUSH往堆椎ss中送入数据时,为什么SP会减小,
按我想的送入一个指针应该增大呀
(送入一人字节,SP应该加1,这是我想的哈)?
请给我讲讲

XLAT用来干什么呀,书上写的很模糊,看不懂



下面是定义变量
b1 DB 'AB';这儿应该把AB转换成ASCII码,再转换成H,才能往内存中存.
但这儿定义的是一个字节,只有八位,而转化后的AB的十六进制分别是41,42,
它们占的空间应该是16位(字),这样写不会出错吗?是不是存储不下的自动往下一个存储单元填

MOV AX,100H
ADD AX,5H
这样执行后,我想在屏幕上输出AX,语句是什么
我还不知道汇编的输出语句

还有reg ,mem分别表示什么?哪儿又这些名词解释的资料



5 回复
#2
lj_8606032006-04-26 19:46
1.因为栈段上面是存放低字节,下面是高字节,所以要把数据放进去栈里面要把指针SP先往上移动(因为SP总是指向最高点),所以就减少了.

#3
lj_8606032006-04-26 19:48
XLAT是换码指令;
功能:将BX指定的缓冲区中、AL指定的位移处的一个字节数据取出赋给AL
指令格式:XLAT ;al<--ds:[bx+al]
例:
MOV AL,5 ;AL=5
MOV BX,100 ;BX=100
XLAT ;AL=DS:[100+5]=DS:[105]
#4
lj_8606032006-04-26 19:50
3.输出语句的功能是:
MOV AH,02H ;02号功能,输出的内容是DL或者DX里面的内容
INT 21H
#5
lj_8606032006-04-26 19:52

4.REG是寄存器;
 MEM是主存;   ;都是英文字母的头几个字母;

#6
走火2006-04-27 08:09
谢了
1