做详情页不错的网站,品质好茶,网页设计课程主要内容,网站制作二维码汇编语言指令 ORG#xff1a;origin#xff0c;指定程序从某个地址开始#xff0c;即把程序装载到内存的某个地址。 如#xff1a;ORG 0x7c00#xff0c;0x7c00作为是英特尔指定的。JMP#xff1a;jump#xff0c;跳转指令。entry, msg, loop#xff1a;自定义标签origin指定程序从某个地址开始即把程序装载到内存的某个地址。 如ORG 0x7c000x7c00作为是英特尔指定的。JMPjump跳转指令。entry, msg, loop自定义标签随便是什么都可以代表了某个地址仅仅代表单纯的数字通过ORG计算出来的用于指定JMP指令跳转目的地。MOVmove赋值。如MOV AX, 0表示“AX 0”。 值得注意的是例如MOV SS, AXSS被赋值后AX原来的值还在并没有变空。而且MOV源数据和目的数据的位数必须相同。[]表示内存地址但只有BX、BP、SI、DI可以其他寄存器不行因为CPU没有处理这种指令的电路也就是没有表示这种处理的机器语言又是英特尔的“杰作”。CMP常与JE、JNE连用变成if语句。INT中断指令目前可看作函数调用。如INT 0x10调用16号函数。HLThalt让CPU进入状态只要按下键盘、移动鼠标等CPU就会醒过来。汇编语言出现的数字有0x前缀的就是十六进制无前缀就是十进制。关于MOV指令”MOV BYTE [678], 123“移动8位二进制数到[678][678]这个单元刚好能存下。MOV WORD [678], 123移动16位二进制数123被解释成16位二进制数高位填0[678]这个单元存不下只能存低位高位存[679]单元。MOV DWORD [678], 123移动32位二进制数123被解释成32位二进制数高位填0存不下像高位拓展存储。 寄存器 AXCXDXBXSPBPSIDI都是CPU的8个16位寄存器(各寄存器意义可参考P31)因此可以存储16位二进制数。它们不管使用哪个都可以进行同样的运算只是如果用AX进行运算的话程序可以变得简洁。例如“ADD CX0x1234”是一个4字节命令而“ADD AX0x1234”是一个3字节的命令。AXCX等寄存器的X是extend的意思因为原来CPU的寄存器都是8位的。用齐这8个寄存器总共只可以存储16个字节。当然AXCXDXBX分为ALAH、CHCL等。但是SPBPSIDI没有这样分哦 所以你想使用这4个寄存器分开高位和低位处理的时候只能“MOV AX, SI”使用AH、AL来取值。没办法这又是英特尔规定的。现在的CPU大多数都是32位的因此在这些寄存器前面加上E就成为32位寄存器了也是extend的意思哈。如EAXEBX.....。32位CPU也只能存储32个字节。段寄存器16位寄存器明天讲解。 内存 就是因为CPU只能存储这么少信息才需要内存的辅助。转载于:https://www.cnblogs.com/comeonjiji/p/3568111.html