2022.11.2
1.db定义字节类型变量,一个字节数据占1个字节单元,读完一个,偏移量加1
dw定义字类型变量,一个字数据占2个字节单元,读完一个,偏移量加2
dd定义双字类型变量,一个双字数据占4个字节单元,读完一个,偏移量加4
2.bx 可以做为索引寄存器
m dw 1,2,3,4,5,6,7,8,9,10
lea bx, m ; 把m的首地址放入bx,即把bx当作索引,C语言中的指针概念即来源于此
; 如果你学过C语言的话
mov byte ptr al, [bx]; 读取1个字节的数据到al中.[bx]是寄存器寻址,即相当于
; C语言中的
char
a = *(
char
*)p;这类用法。
; byte ptr即指明操作类型是db类型。
; 同理,[bx+1]即指向了数据中下一个字节,对m这种dw类型的数据来说,
; 即相当于指向了[bx]对应的字数据的高位字节
比如:假如bx指向第1个字1, 1在内存中占2个字节01 00 (低位在前,高位在后,则:
mov al, byte ptr [bx] ;把低位01 送入al
mov ah, byte ptr [bx+1] ;把高位00状入ah
2022.12.7流程转移和子程序
1.转移的概念及转移指令(jmp指令,jcxz指令,loop指令)
根据转移行为分类:
段内转移:只修改IP,不修改CS,如jmp ax
端间转移:同时修改CS与IP,如jmp 1000:0
操作符“offset”可以取得某标号的偏移地址
2.原码,反码,补码(为计算机组成原理打基础)
3.CUP与指令读取之间的关系
一条指令的执行分为两个阶段:
1.取址阶段:根据CS:IP,找到指令并且传入CPU中,IP加上指令的长度
2.执行阶段:对机器码进行操作