使用的是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之類的操作
但是都沒有任何實際的用途
第一次發帖
來博客園也有好幾年時間了
一直都處於潛水階段
看各位大俠再次高談闊論
看的小弟也是蠢蠢欲動
終於忍不住寫下了一點微薄見解
忘在此結實各路英雄豪傑