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語言程式設計題!求解!急!謝謝大...