您的位置:首页 > 其它

汇编语言小知识点

2016-03-30 16:42 225 查看
1.

<span style="font-size:18px;">mov    ah,4ch
int    21h</span>


mov ah,4ch:把功能号放到AH寄存器.

int 21h:调用.21中断 并且会取功能号并根据功能号运行

比喻:21h就是一个函数,内部有一个switch。

4ch选择执行switch中的哪一条语句。

调用中断21h的4ch号功能。
中断21h是DOS系统的系统调用中断,使用ah来选择功能。
4ch号功能是退出程序的意思。

21中断有很多功能.你要先把功能号放到AH寄存器.然后调用.21中断就会取功能号并根据功能号运行


参考网站:

百度知道

C++博客

2.dw:

DW的功能是分配一个WORD的空间,它前面的符号是地址

DW ? 表示分配一个WORD空间,不初始化里面的内容
DW 1234H 表示分配一个WORD空间,并填写内容为1234H

参考网站:

百度知道

博客园

3.

1. assume ds:data ,cs:code
2. mov ax,data
3. mov ds,ax


assume:

1.assume为我们指定默认的段寄存器。(也就是说,在代码段中可以不用这里指定的默认段寄存器,而自己再指定一个段寄存器)
2.若不使用assume,那么我们在程序中访问数据时必须人为地明确指定相应的段寄存器
也就是说:

1.没有第一句,只有2、3句:正确

2.只有第一句,没有2、3句:错误

参考网址:

CSDN

  情景1:汇编器将你的原代码翻译为二进制机器指令码,它需要知道ds与哪个段相关联,以便为各命名的变量产生正确的地址偏移量,这时用assume
ds:data,es:data这种语句来解决.(这种语句不产生机器指令,所以叫伪指令)

  情景2:你写的程序经过汇编和链接制成了可上机执行的机器指令序列,程序装入内存后,要为使用的各寄存器赋初值(亦称:装填),这个初值是由你写的指令来完成的,这就是为什么要用mov
ax,data 然后再mov ds,ax.(机器没有mov ds,data这样的指令)

参考网址:

百度贴吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: