asm二

来源:互联网 发布:手机运行windows系统 编辑:程序博客网 时间:2024/06/10 02:54

BX用作计数器 INC BX == add bx,1h
CX用作循环次数 在LOOP前进行CX-1
1循环时如果要计算的数据超出范围时在DX中存放
2再循环时利用DX进行累加(dx)=(dx)+ax
3存储单元中数据为一个字节,向寄存器赋值时 应先把寄存器高位置为0 mov ax,0
debug下g 【datas】表示执行到【datas】行停止
p 表示执行到 cx=0时停止~即循环结束
在masm中【数字】被当作数字处理,在debug中当作偏移地址处理,可以在【数字】前加段地址如DS:【1】
则表示所要指向的内容
ax存储数据 bx存储偏移地址 cx存储循环次数 dx存储临时数字或累加数组
联合使用loop和【bx】可以方便计算某一长度内存中的数据和
为防止数据累加是超出边界,用ax作为中介
mov al,[bx]
mov ah,0h
则再进行累加时,不会超出边界,发生数据丢失
编译器中字母不能放在第一个位置。ah错误0ah正确
在dos下0:200~0:300为安全的段,常用es指向
ds:[datas]指向数据段cs:ip指向指令段ss:sp指向栈es指向安全的数据段

在进行寄存器和内存间操作时要注意长度不一样,寄存器为16位内存为8位