匯編語言功能用循環(huán)累加實現(xiàn)乘法
問題1:編程計算2的2次方,結果存在ax中
分析:用2+2實現(xiàn)
assume cs:code code segment mov ax,2 add ax,ax ;實現(xiàn)程序的返回 mov ax,4c00h int 21h code ends end
問題2:編程實現(xiàn)2的12次方
分析:用loop實現(xiàn)
assume cs:code code segment mov ax,2 mov cx,11 ;設置循環(huán)次數(shù),只需相加11次 s:add ax,ax loop s mov ax,4c00h int 21h code ends end
問題3:編程實現(xiàn)123*236,結果存在ax中
分析:用236相加123次的計算次數(shù)比較少,節(jié)約計算資源
assume cs:code code segment mov ax,236 mov cx,122 s:add ax,ax loop s mov ax,4c00h int 21h code ends end
問題4:計算ffff:0006單元中的數(shù)乘以3,結果存儲在dx中
分析:
1、判斷數(shù)據是否能夠存儲
因為內存單元中存儲的是字節(jié)型數(shù)據,范圍在0~255之間,乘上8之后不會大于16位dx寄存器的存儲范圍0~65535
2、判斷數(shù)據相加是否能夠位數(shù)相同
內存單元是字節(jié)單元,如果用寄存器直接相加,數(shù)據的長度不一樣,所以需要將寄存器變成8位,則只需要將高8位設置為0,用低8位相加即可
assume cs:code code segment ;設置地址指向為ffff:0006 mov ax,0ffffh ;字母開頭的常量前面需要加0 mov ds,ax mov bx,6 ;ds:bx則為數(shù)據的指向 mov al,ds:[bx] mov ah,0 mov dx,0 ;初始化寄存器中的內容 mov cx,3 ;因為不是自身相加,所以需要3次 s:add dx,ax loop s mov ax,4c00h int 21h ;程序返回 code ends end
問題5:計算ffff:0~ffff:b單元中的數(shù)據的和,結果存儲在dx中
分析:
1、運算的結果是否超出寄存器的范圍
12個字節(jié)型數(shù)據的相加,結果不會超過65535
2、能否直接相加dx中的數(shù)據
8位的數(shù)據不能直接相加到16位的寄存器中,如果用低8位進行相加,結果可能會超出8位存儲的范圍,所以只能先將數(shù)據存放到16位的寄存器中,在與dx相加
assume cs:code code segment mov ax,0ffffh mov ds,ax mov bx,0 ;ds:bx指向ffff:0 mov dx,0 mov cx,12 ;12次到ffff:b s: mov al,ds:[bx] mov ah,0 add dx,ax ;利用ax進行相同位數(shù)的相加 inc bx ;向后移動一個單元 loop s mov ax,4c00h int 21h code ends end
問題6:計算data段中第一組數(shù)據的3次方,結果保存在后面一組的dword單元中
分析:
1、需要利用一個子程序包裝出計算的功能
2、同時需要兩個寄存器分別保存和修改其中的內容
assume cs:code,ds:data data segment dw 1,2,3,4,5,6,7,8 dw 8 dup(0) data ends code segment start: mov ax data mov ds,ax mov si,0 ;ds:si指向第一組word單元 mov di,16 ;ds:di指向第二組dword單元 mov cx,8 s: mov bx,ds:[si] call cube mov ds:[di],ax ;計算的結果低16位保存在ax中 mov ds:[di+2],dx ;計算的結果高16位保存在dx中 add si,2 ;ds:si指向下一個word單元 add di,4 ;ds:di指向下一個dword單元 loop s mov ax,4c00h int 21h cude: mov ax,bx mul bx mul bx ret code ends end start
以上就是匯編語言功能用循環(huán)累加實現(xiàn)乘法的詳細內容,更多關于匯編語言循環(huán)累加實現(xiàn)乘法的資料請關注腳本之家其它相關文章!
相關文章
匯編用串檢測scasb尋找數(shù)的位置實現(xiàn)
這篇文章主要介紹了匯編用串檢測scasb尋找數(shù)的位置實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-02-02匯編語言 輸入10個數(shù)排序并輸出的實現(xiàn)
這篇文章主要介紹了匯編語言 輸入10個數(shù)排序并輸出的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-01-01