1樓:匿名使用者
藉助上位仁兄的回答,你可以編寫一個過程來輸入你要比較的數字,當然輸入的是ascii碼,所以涉及到一個轉換的過程,轉換也可以用過程來編寫
說多了,彙編什麼的都是超低階的,寫這些東西除了在實驗和考試中有用,其他地方就不知道了,還是c,c++編這些實在
2樓:匿名使用者
以前做的實驗 可以參考下
有一個10個位元組的有符號陣列,程式設計實驗使該陣列的元素按照從小到大的次序排列。
data segment ;定義資料段
data1 db 32h,02h,01h,04h,0f1h,0f2h,0ffh,0fdh,0fah,79h
count equ $-data1
data ends
code segment
assume:ds:data,cs:code
start:
mov ax,data
mov ds,ax
mov si,offset data1 ;指向序列首地址
mov bx,si ;把序列首地址給bx
mov dx,count-1 ;外迴圈計數器
outside:mov cx,dx ;內迴圈計數器
push si ;此迴圈處理的第一個單元地址
mov al,[si]
inside: inc si
cmp al,[si]
jl nexchg ;若低於,則處理下一個
xchg [si],al ;若高於,則交換比較的兩個單元
nexchg: loop inside ;完成內部迴圈,繼續
pop si
mov [si],al
inc si
dec dx
jnz outside ;未完成外部迴圈,繼續
code ends
end start
51彙編實現比較三個數的大小並排序
3樓:做而論道
假設有三個數存在40h、41h、42h單元中。
先在三個數字中,找一個最大的,放在40h。
再在餘下的兩個數字中,找一個最大的,放在41h。
4樓:匿名使用者
51微控制器實現比較三個數的大小,並將數由小到大分別存入40h、41h、42h單元中
org 0000h
ajmp main
org 0100h
main: mov 30h,#98h
mov 31h,#88h
mov 32h,#78h
mov a,30h
cjne a,31h,comp1
comp1: jc b1
cjne a,32h,comp2
comp2: jc a1
mov 42h,30h
mov a,31h
cjne a,32h,a2
a2: jc a3
mov 41h,31h
mov 40h,32h
sjmp $
a3: mov 41h,32h
mov 40h,31h
sjmp $
a1: mov 42h,32h
mov 41h,30h
mov 40h,31h
sjmp $
b1: mov a,31h
cjne a,32h,co***
co***: jc b3
mov 42h,31h
mov a,30h
cjne a,32h,comp4
comp4: jc b3
mov 41h,30h
mov 40h,32h
sjmp $
b3: mov 42h,32h
mov 41h,31h
mov 40h,30h
sjmp $ ;
b2: mov 42h,32h ;
mov 41h,31h ;
mov 40h,30h ;
sjmp $end
微機原理,彙編程式題:從變數array開始的區域,存放10個word型別數,找出其中最大的數,並存入變數max
5樓:可軒
data segment
array dw 025ah,1357h,776h,0040h,05c3h,36d0h,720fh,082ah,019dh,0124h
org 0050h
max dw 0
data ends
code segment
assume cs:code, es:data
org 100h
start: mov cx, 9h ;迴圈次數=資料個數-1
mov ax, seg ary
mov es, ax
lea si, array
mov ax, es:[si] ;最大值初值
schmax: add si, 2
mov dx, es:[si]
cmp dx, ax
jle next
mov ax, dx
jmp next
next: loop schmax
finish: mov es:[max], ax
int 3 ;暫停,以便在debug中檢視執行結果
code ends
end start
微機原理程式設計題!計算負數的個數問題! 5
微機原理上機操作:在data單元中存放10個有符號位元組資料,程式設計求和,結
6樓:匿名使用者
.model flat.stack 4096.
dataarray byte array_size dup(?).codesort proc uses eax ecx esi, parray:
ptr dword, count:dword mov parray,offset array mov ecx,count dec ecxl1: push ecx mov esi,parrayl2:
mov eax,[esi] cmp [esi+1],eax jae l3 xchg eax,[esi+1] mov [esi],eaxl3: inc esi loop l2 pop ecx loop l1l4: retsort endp 有人也在問這個,一樣的問題,
微機原理組合語言程式設計題 在資料段中定義了一個tab變數來存放位元組型資料塊。資料塊的長度為10,資料
7樓:蒜薹
mov bx,offset tab ;把tab變數的首位元組地址放到bx暫存器
mov cx,10 ;因為資料塊長度是10,把10放到cx計數器
mov dx,0 ;dx用來存放結果,初始為0
lop1: mov al,[bx] ;把bx對應的值放入al暫存器
cmp al,0 ;比較al與0,這裡主要看zf標誌位的值
jne next1 ;如zf=0(意al不為0),跳到next1標號處
inc dx ;計數器dx加1,(發現一個0)
next1: inc bx ;bx加1,指向tab裡下一個位元組變數
loop lop1 ;判斷計數器cx,不為0則跳轉到lop1處
mov count,dx ;把dx裡的結果放入count對哇。
微機彙編程式設計
code segment assume cs code start mov ah,1 鍵盤輸入一個字元 int 21h cmp al,41h 判斷與 a 的關係jb tj 小於 a 則不是字母 cmp al,5ah 判斷與 z 的關係ja daxie 大於 z 可能是小寫字母add al,20h 大...
微機原理是什麼,微機原理與介面技術是什麼?
微機原理 是一門專業基礎課程,它的主要內容包括微型計算機體系結構 8086微處理器和指令系統 組合語言設計以及微型計算機各個組成部分介紹等內容。要求考生對微機原理中的基本概念有較深入的瞭解,能夠系統地掌握微型計算機的結構 8086微處理器和指令系統 組合語言程式設計方法 微機系統的介面電路設計及程式...
微機原理中什么是多路複用,微機原理中什麼是多路複用?
多路複用是指兩個或多個使用者共享公用通道的一種機制。通過多路複用技術,多個終端能共享一條高速通道,從而達到節省通道資源的目的,多路複用有頻分多路複用 fdma 時分多路複用 tdma 碼分多路複用 cdma 幾種。頻分多路複用 fdma 頻分制是將傳輸頻帶分成n部分,每一個部分均可作為一個獨立的傳輸...