將陣列的數字複製並將負數改變成正數(彙編)

2021-09-28 21:18:49 字數 1325 閱讀 6751

將10個數(有正數,有負數)全部轉換成正數指令

含義lea bx,x

lea取x有效的位址給bx

mov bx,offset x

將x的位址給bx,相當於lea bx,x,和第一條指令等價

or al,al

al 與 al

jns判斷不是不是負數

jnz判斷不是0

data segment

x db -1,2,-3,4,-5,6,-7,8,-9,10 ;db 相當於乙個陣列型別

org 10h

y db 100 dup('$') ;申請100個空間,每個空間賦值 $

data ends

code segment

assume cs:code,ds:data ;宣告**段和資料段

start:

mov ax,data

mov ds,ax

mov cx,10 ;cx相當於乙個計數器

lea bx,x ;lea取有效的位址 相當於把x的位址給bx bx指向了x陣列的首位址

lea si,y

next1:

mov al,[bx] ;將x[bx]的值賦值給al mov指令不影響標誌位

or al,al ; 將al | al 給標誌位賦值 eg: 1000 | 1000 最高位 1 | 1 = 1 也就相當於給flags(控制暫存器)中的 sf(符號標誌位)置數

jns next ; jns 判斷不是負數 就執行next

neg al ; neg 給al取絕對值

next:

mov [si],al ;將al的值賦值給y[si]

inc bx ;bx++

inc si ;si++

dec cx ;cx--

jnz next1 ;jnz 如果cx不是0就執行next1 jnz的預設運算元是cx

mov ax,4c00h ;返回dos

int 21h

code ends

end start ;程式結束

我們debug除錯一下,檢視資料段的值使我們的初值

PHP如何將陣列中的負數全部變為正數

php將陣列中的負數全部變為正數的方法 首先新建php檔案,並宣告php與瀏覽器互動的檔案型別和編碼 然後定義乙個含有負數的陣列,並定義for迴圈遍歷陣列 接著使用函式 abs 將陣列中的元素變成正數 最後執行該網頁輸出陣列即可。php將陣列中的負數全部變為正數的方法 1 新建乙個252.php 2...

將陣列的奇數字的元素存入陣列並返回

public class shuzuhe int jishu new int 10 for int i 0 i jishu i score i 1 for int jishu1 jishu 上題少了一種情況 奇數陣列,果是奇數則長度 length 2 1 還有賦值給新陣列這個方法也不是很好 最好使用...

華為程式設計大賽 將字元陣列內的數字排序

author justinzhang email uestczhangchao gmail.com time 2012年4月22日16 08 42 from 2012華為程式設計大賽下午組第二題 include include include using namespace std input是乙個...