求解一道組合語言的題,求解一道題關於組合語言的題

2021-03-04 08:38:51 字數 5322 閱讀 5008

1樓:匿名使用者

棧頂的三個字,自位址比較大的開始,向位址比較小的方向看 ,分別是psw,斷點(cs,ip),即0240,0900,00a2;

ss的內容不變,還是0300,sp的是原內容-6,即 0100h - 6 =009ah

ip的內容是中斷服務程式中第一條指令的位置,即00020h記憶體單元的內容,0040h,

至於psw的內容,因為響應中斷時會自動清除tf和if,其他值不變,所以結果應該是0040h

求解一道題關於組合語言的題 20

2樓:匿名使用者

eeeeeeeeeeeeeeeeeeeeeeee

求解一道組合語言程式題,急!!!

3樓:納蘭旖兒

每次看到湯叔的程式都好有壓力= =~~我寫個簡單的吧~這個程式比較簡單~但是個數超過10會出錯~因為在網咖寫的**沒有編譯~明天會來檢查下。。。。。

data segment

str db 'abcabcabcabcdfalk','!'

an db 30h

bn db 30h

** db 30h

data ends

code segment

assume ds:data,cs:codestart:

mov ax,data

mov ds,ax

mov si,offset str

lop:

cmp byte ptr [si],'a'

jne next1

add an,1

next1:

cmp byte ptr [si],'b'

jne next2

add bn,1

next2:

cmp byte ptr [si],'c'

jne next3

add **,1

next3:

cmp byte ptr [si],'!'

je next4

inc si

jmp lop

next4:

mov ah,02h

mov dl,an

int 21h

mov dl,' '

int 21h

mov dl,bn

int 21h

mov dl,' '

int 21h

mov dl,**

int 21h

mov ah,4ch

int 21h

code ends

end start

4樓:湯旺河邊

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

code segment

assume cs:code,ds:code

; -------------------------------------

; 功能:顯示指定位址(str_addr)的字串

; 入口:

; str_addr=字串位址(要求在資料段)

; 用法: output str_addr

; 用法舉例:output promptstr

output macro str_addr

lea dx,str_addr

mov ah,9

int 21h

endm

; -------------------------------------

; 功能:把ax中的二進位制無符號數轉換成顯式的十進位制ascii碼,並送顯示屏顯示

; 入口:ax=二進位製數

; 出口:在當前游標位置顯示轉換後的ascii碼數字

dec_ascii proc near

push dx

push bx

push di

mov bx,10

lea di,@@temp_save[6]

mov byte ptr [di],'$'

dec di

cld@@divide: xor dx,dx

div bx

or dl,30h

mov [di],dl

dec di

test ax,0ffffh

jnz @@divide

inc di

push di

pop dx

mov ah,9

int 21h

pop di

pop bx

pop dx

ret@@temp_save db 7 dup(?)

dec_ascii endp

; -------------------------------------

string db '1c56a78wang mingbcdefabccbaqwe234djachdjfjcbjbcajkhs!'

counter_a db 0 ;字元「a」的個數

counter_b db 0 ;字元「b」的個數

counter_c db 0 ;字元「c」的個數

prompt_a db 7,'a: $'

prompt_b db 13,10,'b: $'

prompt_c db 13,10,'c: $'

start: push cs

pop ds

push cs

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

lea si,string

cldstatics: lodsb

cmp al,'!' ;字元「!」?

jz display ;是,結束統計,轉去顯示包含「a」、「b」 和「c」的個數

cmp al,'a' ;字元「a」?

jnz next_1 ;不是

inc counter_a ;字元「a」計數

jmp statics

next_1: cmp al,'b' ;字元「b」?

jnz next_2 ;不是

inc counter_b ;字元「b」計數

jmp statics

next_2: cmp al,'c' ;字元「c」?

jnz statics ;不是

inc counter_c ;字元「c」計數

jmp statics

display: output prompt_a ;提示顯示字元「a」的個數

mov al,counter_a

xor ah,ah

call dec_ascii ;把ax中的二進位制無符號數轉換成顯式的十進位制ascii碼,並送顯示屏顯示

output prompt_b ;提示顯示字元「b」的個數

mov al,counter_b

xor ah,ah

call dec_ascii

output prompt_c ;提示顯示字元「c」的個數

mov al,counter_c

xor ah,ah

call dec_ascii

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

int 21h

code ends

end start ;編譯到此結束

5樓:

;完整程式

;編譯,鏈結通過

;執行正確

data segment

str db 'a bb ccc !'

re db 3 dup(0)

data ends

stack segment stack

sktop db 40h dup(?)

sksize equ $-offset sktopstack ends

code segment

assume cs:code,ds:data,ss:stackbegin: mov ax,data

mov ds,ax

mov ax,stack

mov ss,ax

mov sp,sksize

lea si,str

lea di,re

call stat

mov ah,2

mov cx,3

xor bx,bx

dsp: mov dl,[bx+di]

add dl,'0'

int 21h

add bl,'a'

mov dl,bl

int 21h

mov dl,' '

int 21h

sub bl,'a'-1

loop dsp

mov ax,4c00h

int 21h

;引數: si=欲統計的字串的有效位址

; di=儲存統計結果的有效位址

;返回: none

stat proc

push ax

push bx

push cx

push si

mov al,0

mov cx,'c'-'a'+1

xor bx,bx

fill0: mov [bx+di],alinc bx

loop fill0

xor bx,bx

xor ah,ah

stats: mov al,[si]

cmp al,'!'

je statre

sub al,'c'

ja contn

add al,'c'-'a'

js contn

mov bx,ax

inc byte ptr [bx+di]

contn: inc si

jmp stats

statre: pop si

pop cx

pop bx

pop ax

retstat endp

code ends

end begin

一道組合語言的題,求解答

6樓:永恆

二進位制的最低位為1或0,其它的高位均是2的倍數,所以二進位製數的奇偶性由最低位決定。

當最低位為1時,數為奇數。當最低位為0時,數為偶數。

7樓:可軒

test ax,01h 功能是將待檢測數與0000 0000 0000 0001b作「與」運算,

若test結果為零(零標誌位jz=1),表示待檢測數二進位制最低位為0,該數是偶數;

若test結果非零(零標誌位jz=0),表示待檢測數二進位制最低位為1,該數是奇數。

一道幾何題求解?求解一道幾何題?

30度,延長ca至,af等於c,作ca等於ae,使角eaf等於40度則三角形f 三角形adc,因為角aec等於角ace,角eaf等於40度。因為角aec 20度 ace,又因為角fea 角dac等於60度,所以fec 80度,所以ce等於cf。應為cf等於db,因為cb等於ce,所以角bce等於角d...

求解一道題,求解一道題目

1,0.375 7 15 37.5 8 15 的 0.375 7 15 0.375 8 15 的 br 0.375 7 15 8 15 0.375 2,4 5 40 1 4 4 5 40 1 5 2 5 的 2 25 3,0.86 8.6 9.9 8.6 0.1 8.6 9.9 br 8.6 0.1...

一道C語言程式設計題,求解大佬,一道C語言程式設計題,求解大佬

覺得你的 沒問bai題,不過可以du 再簡便zhi點,從第 4個月開始,第daon個月的數量等於第專n 1個月的屬數量第n 3個月的數量之和 include int main else for i 4 sum n i printf d yue return 0 一道c語言程式設計題!求解!急!謝謝大...