[关闭]
@fiy-fish 2017-04-12T15:30:04.000000Z 字数 2375 阅读 1622

第二章 寄存器(CPU工作原理)

汇编语言


汇编指令 控制CPU完成的操作 用高级语言的语法描述
mov ax,18 将18送入寄存器AX AX=18
mov ah,78 将78存入寄存器AH AH=78
add ax,8 将寄存器AX中的数值加上8 AX=AX+8
mov ax,bx 将寄存器BX中的数据宋日寄存器AX AX=BX
add ax,bx 将AX和BX中的数值相加,结果在AX中 AX=AX+BX

上面的指令都不区分大小写AX=ax; MOV = mov; ADD = add

练习:下面的指令结果?

程序段中的指令 指令执行后AX中的数据 指令执行后BX中的数据
mov ax,4E20H 4E20H 0000H
add ax,1406H 6226H 0000H
mov bx,2000H 6226H 2000H
add ax,bx 8226H 2000H
mov bx,ax 8226H 8226H
add ax,bx ? 8226H

ax+bx = 1044CH
8086 寄存器只能存储16位2进制,这里把最高位1抹掉,结果为 044CH
如果是32位寄存器,则结果为1044CH

练习2

指令 AX结果 -
mov ax,00C5 00C5 -
mov al,93 -

按理来说是0158,但是mov al 是在 al这个单独的寄存器上进行操作,8086中只能存放两位十六进制数据,8086中答案是58

小结:
1. 段地址在8086CPU的段寄存器中存放,当8086CPU要访问内存时,由段寄存器提供内存 单元的段地址。8086CPU有4个段寄存器,其中CS用来存放指令的段地址
2. CS存放指令的段地址,IP存放指令的偏移地址
8086机中,任意时候,CPU将CS:IP指向的内容当做指令执行
3. 8086CPU的工作过程:
- 1. 从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器
- 2. IP指向下一条指令
- 3. 执行指令(转到第一步,重复整个过程)


Debug 的使用

Debug 是DOS、Windows提供的程序调试工具

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注