标签:
使用的是MASM编译
在XP环境下 command内 debug 调试的
啥也不说 上代码!!
assume cs:code,ds:data data segment dw 0fa12h,0fdffh data ends code segment start: mov ax,data mov ds,ax ;设置数据段 mov ax,0h ;清零 mov bx,0h ;清零 mov al,ds:[0] ;fa12低位 mov bl,ds:[2] ;fdff低位 add ax,bx ;两个8位数字相加 ah 高位存储进位的数 mov ds:[0],al ;将低位结果存到ds[0] mov al,ah ;将进位数存至ax低位 mov ah,0h ;高位清零 xor bx,bx ;bx清零 mov bl,ds:[1] add ax,bx ;数字1高位与进位数相加 mov bl,ds:[3] add ax,bx ;数字2高位与进位数相加 mov ds:[1],ax ;高位相加后的数据放至ds[1] ;高位相加可能是8位 也可能是16位 int 21h code ends end start
主要思路就是在16位寄存器里面
计算两个八位数字的和
将进位的数保存至高位
可以依次扩展至 32位 64位 等等
闲来无事 最近看了一点汇编的知识
课本上都是一些 mov add之类的操作
但是都没有任何实际的用途
第一次发帖
来博客园也有好几年时间了
一直都处于潜水阶段
看各位大侠再次高谈阔论
看的小弟也是蠢蠢欲动
终于忍不住写下了一点微薄见解
忘在此结实各路英雄豪杰
标签:
原文地址:http://www.cnblogs.com/zxsonne/p/5787073.html