微机原理 伪指令实例解析(1)

伪指令实例解析1

伪指令(pseudo instruction)是用于对汇编过程进行控制的指令,是在编译阶段发挥作用的,由汇编器(MASM、TASM等)来解释。
指令:是在执行阶段发挥作用的,由CPU执行。
1个8086CPU的寄存器均是16位的,而数据类型有以下两种:
1 Byte = 8bit 1字节
1 word = 2 Byte = 16 bit 1个字

;eg1.将字符串string中的所有数字加密。
assume cs:code,ds:data
data segment
	string db '123Hello!'
data ends
code segment
start:	mov ax,data
		mov ds,ax	;ds和cs等段地址寄存器不支持将数据直接写入,必须通过其他寄存器中转
		mov bx,offset string	;返回string的偏移地址并将其赋值给寄存器bx
		;bx相当于一个变量,指向字符串(即字符数组)的首地址,故只需将bx自增1就可以访问下一个字符
x1:		mov cl,ds:[bx]  ;将字符串首地址中的字符的ASC码取出并赋值到寄存器cx的低位
		cmp cl,'0'		;将字符串首字符的ASC码跟数字0的ASC码比较大小
		jb x2			;若前者小于后者,则说明该字符不是数字,跳到x2
		cmp cl,'9'		;将字符串首字符的ASC码跟数字9的ASC码比较大小
		ja x2			;若前者大于后者,则说明该字符不是数字,跳到x2
		inc cl			;若字符处于0到9之间,则对其进行加密处理,这里加密简化为将其ASC码自增1
		mov [bx],cl		;将加密后的字符重新写回寄存器ds
		inc bx			;将bx自增1,顺序访问下一个字符;只需自增8次即可访问完所有字符
		cmp bx,9		;判断偏移量是否超过字符串长度9
		jb x1			;若未超过,则说明未访问完所有字符,便重新进入循环体x1
x2:						;对不是数字的字符不进行任何处理
code ends
end start

截图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结
本来很讨厌微机原理这门课,因为好多不懂,觉得很难,想逃避。
我总是逃避,这几乎成为我的固定模式了,不管遇到什么事情都是下意识逃避。
这样太不好了,越是抗拒的东西越是会持续。我应该直面这种无力感,明白抗拒和逃避是徒劳,慢慢跳出这样的人生模式。干巴爹!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值