16位汇编程序代码示例

554 阅读1分钟

这是一段16位汇编代码的demo示例,实现16x+y,并且将结果保存在z中

assume cs:code,ds:data ;定义代码段cs和数据段ds的名称分别为code和data

data segment	;data数据段的开始
x dw 1234h	;定义x的数值
y dw 5678h	;定义y的数值
z dd ?	;用来作为存储x+y的结果
data ends	;data数据段的结束

code segment
start:
	mov ax,data ;将data的地址送入到ax
	mov ds,ax	;因为不能直接对段寄存器赋值,以要借助ax寄存器
	mov ax,x ;将x的值送入到ax
	
	;计算结果
	mov bx,16 ;将十进制16送入bx中,对应的16进制位10h,所以这里也可以写成mov bx,10h
	mul bx ;计算ax与bx的结果,最后因为会进位,所以dx此时会为0001
	add ax,y ;计算ax+y的结果
	
	;保存结果到z
	mov word ptr z,ax ;将ax存入ds的高字节
	mov word ptr z+2,dx ;将ax存入ds的低字节
        ;最后ds的结果为
	
	mov ax,4c00h
	int 21h

code ends
	end start