微機原理程式設計題數大小排序,微機原理程式設計題 10個數大小排序

2022-05-26 06:00:14 字數 4030 閱讀 2172

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部分,每一個部分均可作為一個獨立的傳輸...