組合語言程式設計的題目,謝謝高手指點啊

時間 2021-09-14 19:01:53

1樓:湯旺河邊

; 本程式通過編譯,執行正確

code segment

assume cs:code,ds:code

adr1 db 15h,23h,35h,46h,97h ;5個位元組壓縮bcd碼

elements equ ($-adr1)/type adr1 ; 陣列元素個數

adr2 dw elements dup(?) ;非壓縮bcd碼

start: push cs

pop ds

push cs

pop es ;使資料段、附加段與**段同段

; 將記憶體中adr1開始存放的5個位元組的壓縮型bcd碼拆成非壓縮型bcd碼,存入adr2開始的位元組單元中。

cldlea si,adr1 ;5個位元組壓縮bcd碼陣列位址

lea di,adr2 ;5個字非壓縮bcd碼陣列位址

mov cx,elements ; 陣列元素個數裝入計數暫存器

split: lodsb ;讀入乙個元素至al

xor ah,ah

push cx

mov cl,4

shl ax,cl ;壓縮bcd碼高4位移至ah的低4位

shr al,cl ;將被移到高4位原壓縮bcd碼低4位移回低4位,完成拆分

pop cx

stosw ;儲存拆分好的非壓縮bcd碼

loop split

exit_proc: mov ah,4ch ;結束程式

int 21h

code ends

end start ;編譯到此結束

2樓:

;本程式除錯正確.

data segment

adr1 db 15h,23h,35h,46h,97h ;5個位元組壓縮bcd碼

count equ $-adr1 ; 陣列元素個數data ends

ext segment

adr2 dw count dup(?) ;非壓縮bcd碼ext ends

code segment

assume cs:code,ds:data,es:extstart:

mov ax,data

mov ds,ax

mov ax,ext

mov es,ax

cldlea si,adr1 ;5個位元組壓縮bcd碼陣列位址lea di,adr2 ;5個字非壓縮bcd碼陣列位址mov cx,count ; 陣列元素個數裝入計數暫存器next:

lodsb ;讀入乙個元素至al

mov ah,al

and ah,0fh ;拆出低位

shr al,1

shr al,1

shr al,1

shr al,1 ;拆出高位

stosw ;儲存拆分好的非壓縮bcd碼

loop next

mov ah,0

int 16h

mov ah,4ch ;結束程式

int 21h

code ends

end start ;編譯到此結束

.組合語言程式設計考題,求高手解答

3樓:做而論道

一、判斷題(5道小題,共15分)

1、masm組合語言的注釋用分號開始,無所謂英文分號、還是中文分號。(3分)

錯誤2、按照masm語法程式設計時,可以將shl作為8086指令的標號。(3分)

錯誤3、指令「mov ax,ds:[100h]」中,若ds=1400h,則源運算元來自主存實體地址1500h。(3分)

錯誤4、彙編結束end語句表明程式執行到此結束。(3分)

錯誤5、指令的運算元使用儲存器定址方式,說明運算元儲存在主儲存器中。(3分)

正確二、單項選擇題(5道小題,共15分)

1、某個8086儲存單元的邏輯位址為a400h:2400h,其實體地址是__b、a6400h__。(3分)

a、d7000h b、a6400h

c、3d400h d、0a640h

2、在8086處理器中,用來指示當前堆疊頂部的暫存器是__a、sp__。(3分)

a、sp b、ip

c、bp d、ss

3、已知字變數buffer內容等於1234h,儲存於主存資料段偏移位址為5678h位置,

執行指令「mov ax, buffer」後,ax=__c、3412h__。(3分)

a、7856h b、5678h

c、3412h d、1234h

4、組合語言程式定義符號常量max等於100,正確的表達是__a、max = 100__。(3分)

a、max = 100 b、max db 100

c、max dw 100 d、max org 100

5、堆疊的操作原則可以描述為__b、後進後出__。(3分)

a、先進先出 b、後進後出

c、先進後出 d、迴圈

《組合語言程式設計題目解答,組合語言程式設計題目,線上等答案!!!!急!!!!!!!!!!

3 計算1090h 1280h的和。4 ax 1090h,bx 90h。5 mov dx,1 mov ax,100h mov bx,16 imul bx 1 執行後,ax f000h,bx 16,dx ffffh 2 若將imul改為mul則執行完後,ax 1600h,bx 16,dx 000bh ...

組合語言程式設計題目,用C或者彙編都ok,最好

採納的答案有錯,正確程式如下 first mov dptr,1200h mov r2,70 mov r3,0 check movx a,dptrjb acc.0,next 是奇數就查下乙個cjne a,40h,3 jnc next 大於等於40h就查下乙個inc r3 next inc dptr d...

能告訴我組合語言與程式語言的區別嗎??謝謝

組合語言是面向機器的程式設計語言。在彙編語閤中,用助記符 memoni 代替操作碼,用地址符號 symbol 或標號 label 代替地址碼。這樣用符號代替機器語言的二進位制碼,就把機器語言變成了組合語言。於是組合語言亦稱為符號語言。使用組合語言編寫的程式,機器不能直接識別,要由一種程式將組合語言翻...