微機原理期末彙編部分程式設計題複習

2021-10-06 20:43:20 字數 1657 閱讀 7666

1.設資料段array單元開始有50個有符號數的位元組數,要求統計其中負數的個數,並存入到資料段中的result變數中。寫出實現該功能的匯程式設計序

data  segment

array db 1,2,3,4,-

1……result db 0

;統計負數的個數

data ends

code segment

assume: cs: code, ds:data

start:

mov ax, data

mov ds, ax

lea si, array ;取首位偏移位址

mov cx,

50 ;迴圈次數

haha: mov al,

[si]

;取出第乙個數送al

inc si ;指向下乙個位置

test al,

80h ;測試符號位

jz next ;非負,跳轉

inc result ;否則,result加1

next: loop haha

code ends

end start

2.若data1與data2都是記憶體單元的位址,編寫一段程式實現將data1單元開始的100個數傳送到data2開始的儲存區內的功能。

lea  si , data1

lea bx , data2

mov cx ,

100next: mov al,

[si]

;取出data1中的數到al

mov [bx]

, al ;將al中的值傳到data2中

inc si

inc bx

loop next

hlt

3.編寫程式,將以block單元開始的100個儲存單元清0。要有段說明和必要的偽指令。

data   segment 

block db 100

dup(?)

data ends

code segment

assume cs:code, ds:data

start: mov ax, data

mov ds, ax

lea bx, block

mov cx,

100next: mov byte ptr[bx]

,0 ;清0

inc bx ;指向下乙個位置

loop next

code ends

end start

4.編寫乙個組合語言程式,要求對鍵盤輸入的小寫字母用大寫字母顯示出來

start:  mov  ah,

1 int 21h

cmp al, 『a』

jb stop

cmp al, 『z』

ja stop

sub al,

20hmov dl, al

mov ah,

2int 21h

jmp start

stop: ret

微機匯程式設計序

又是自學的一學期,呵呵。學到最後也就知道零星半點指令吧,複雜的程式可能還是不怎麼會寫,熟練當然也不敵c了,但是彙編之於嵌入式,往上走肯定少不了遇到,學好還是必要的!此次僅作入門吧。今日所學,明日之用。1 統計正負零的個數 datas segment array db 1,2,1,0,2,0,2,4,...

微機原理 反彙編例項01 02

例項2 secret01.exe 第乙個字元的ascii碼減一等於58,故該字元的ascii碼是59,該字元是y 第二個字元的ascii碼加一等於50,故該字元的ascii碼是4f,該字元是o 第三個字元的ascii碼加一等於56,故該字元的ascii碼是55,該字元是u。截圖如下 例項3 secr...

微機原理 反彙編例項5

例項6 secret5.exe 將di中儲存的字元 y 賦值給al,再加一 得到z 與07 二進位制是00000111 做與運算,與30 二進位制是00110000 做或運算。解密過程如下 z 7a,二進位制是01111010 跟07做與運算的結果是00000010 02 將該結果跟30做或運算,結...