❶ 匯編語言編程,在線等,急啊!!!!!!!!!!!!!!謝謝
匯編實現計算器……
出題的人是不是腦子進水了,用匯編寫這種應用程序就如同用耳挖勺去挖水渠一樣,應該讓學生學點先進的思想,不要研究這種如奧數一般的旁門左道的東西。
❷ 用匯編語言來編寫程序,計算字元長度,根據提示輸入字元串;輸入任意字元串string,點擊Enter結束輸入;
data segment
buffer db 40h
numbuf db 0
msg2 db 41h p (0)
data ends
stack segment stack para 'stack' stack
s db 10 p( 0 )
stack ends
code segment
assume cs:code, ds:data, ss:stack
start:
mov ax,data
mov ds,ax
lea dx,buffer
mov ah,0ah
int 21h
xor bx,bx
mov bl,numbuf ;你要的重點在這里
mov msg2[bx],'$'
mov dl,0ah
mov ah,02h
int 21h
lea dx,msg2
mov ah,9
int 21h
mov dl,0ah
mov ah,02h
int 21h
jmp start
mov ah, 4ch
int 21h
code ends
end start
;這個程序應該幫到你想問題,0ah在調用區的第二個單元會記錄鍵盤輸入的字元串的字元數
❸ 急求,匯編語言程序設計,在線等待,謝謝!
DATA SEGMENT
VARX DB 34;定義X=34
VARY DB 58;定義Y=58
RUSUM DB ?;定義存放結果Z的RESUM
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AL,VARX;取出X
ADD AL,VARY;X+Y
MOV CL,3
SHL AL,CL;(X+Y)*8
SUB AL,VARX;(X+Y)*8-X
SHR AL,1;[(X+Y)*8-X]/2
MOV RUSUM,AL;存結果
MOV CH,2;循環兩次在屏幕上顯示兩位十六進制結果
MOV BL,AL
NEXT:
MOV CL,4
ROL AL,CL
AND AL,0FH;取出一位十六進制數
CMP AL,9H
JNA BDY
ADD AL,7;如果十六進制數為A-F,則需要先加7
BDY:
ADD AL,30H;將十六進制數轉換為ASCII
MOV DL,AL;在屏幕上顯示十六進制數
MOV AH,2
INT 21H
MOV AL,BL
DEC CH
JNZ NEXT
MOV AH,1;等待按鍵
INT 21H
MOV AH,4CH;結束程序
INT 21H
CODE ENDS
END START
❹ 匯編語言編程,急,在線等
我也是剛學匯編,可能編得有點累贅,請不要見怪
--------------------------------------------
SSEG SEGMENT PARA STACK
DB 64 DUP(?)
SSEG ENDS
DSEG SEGMENT
MESS1 DB 'HAPPY BIRTHDAY TO $'
MESS2 DB 'YOUR BIRTHDAY WILL COME NEXT YEAR.$'
MESS3 DB 'YOUR BIRTHDAY WILL COME IN $'
MESS4 DB ' DAY(S).$'
O_NAM DB 'YOU NAME:$'
O_BIR DB 'BIRTHDAY:$'
I_NAM DB 32
DB ?
DB 32 DUP(?)
I_BIR DB 5
DB ?
DB 5 DUP(?)
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START: MOV AX,DSEG
MOV DS,AX
LEA DX,O_NAM
MOV AH,9H
INT 21H
LEA DX,I_NAM
MOV AH,0CH
MOV AL,0AH
INT 21H
CALL NEWLINE
MOV AL,I_NAM+1
XOR AH,AH
MOV SI,AX
MOV I_NAM[SI+2],24H
LEA DX,O_BIR
MOV AH,9H
INT 21H
LEA DX,I_BIR
MOV AH,0CH
MOV AL,0AH
INT 21H
CALL NEWLINE
MOV SI,2
CALL XCH
MOV BH,BL
CALL XCH
MOV AH,2AH
INT 21H
CMP BH,DH
JA BIG1
JB SMA
CMP BL,DL
JA BIG2
JB SMA
LEA DX,MESS1
MOV AH,9H
INT 21H
LEA DX,I_NAM
ADD DX,2
MOV AH,9H
INT 21H
JMP OK
BIG1: SUB BH,DH
MOV AL,30
MUL BH
XOR BH,BH
SUB BL,DL
SBB BH,0
ADD AX,BX
XOR DX,DX
MOV BL,10
XOR CX,CX
JMP NEXT1
BIG2: SUB BL,DL
XOR AH,AH
MOV AL,BL
XOR DX,DX
MOV BL,10
XOR CX,CX
NEXT1: CMP AX,10
JB SHOW
DIV BL
MOV DL,AH
PUSH DX
XOR AH,AH
INC CX
JMP NEXT1
SHOW: PUSH AX
LEA DX,MESS3
MOV AH,9H
INT 21H
POP AX
MOV DL,AL
ADD DL,30H
MOV AH,02H
INT 21H
CMP CX,0
JE OK1
NEXT2: POP DX
ADD DL,30H
MOV AH,02H
INT 21H
LOOP NEXT2
OK1: LEA DX,MESS4
MOV AH,9H
INT 21H
JMP OK
SMA: LEA DX,MESS2
MOV AH,9H
INT 21H
OK: MOV AH,4CH
INT 21H
XCH PROC
MOV AL,I_BIR[SI]
SUB AL,30H
MOV BL,10
MUL BL
INC SI
MOV BL,I_BIR[SI]
SUB BL,30H
INC SI
ADD BL,AL
RET
XCH ENDP
NEWLINE PROC
PUSH AX
PUSH DX
MOV DL,0DH
MOV AH,2H
INT 21H
MOV DL,0AH
MOV AH,2H
INT 21H
POP DX
POP AX
RET
NEWLINE ENDP
CSEG ENDS
END START
❺ 急求匯編編寫程序實現 z←(x*y)/(Y+1234H),在線等
mov eax,X
mov ebx,Y
imul ebx
add ebx,1234H
idiv ebx
mov Z,eax
❻ 高分懸賞一個匯編語言編程題 在線等 急
data segment
num dw 2 p(?)
ver_1 db 0
data ends
code segment
assume ds:data,cs:code
start:
mov ax,data
mov ds,ax
mov bx,0
mov di,0
newchar:
mov ax,di
mov cx,10d
mul cx
xchg ax,di
add di,ax
mov ah,1
int 21h
sub al,30h
jl newchar
cmp al,9d
jg newchar
cmp al,20h
jz exit
cbw
xchg ax,bx
mov cx,10d
mul cx
xchg ax,bx
add bx,ax
adc di,0
next:inc ver_1
cmp ver_1,9
jna newchar
exit:
mov num,ax
mov num+2,di
mov ah,1
int 21h
mov ah,4ch
int 21h
code ends
end start
❼ 在線等急急急,匯編實現四個兩位非壓縮BCD數相加
LEA DX,RESULT ; 結果數據區首址 LEA SI,NAME1 ; 結果文件名 MOV CX,N+4 ; 結果位元組數 CALL SAVE ; 保存結果到文件 RET START ENDP CODE ENDS END START 就是把首地址傳參給dx,題中因為要把結果輸出在output1.dat中,而結果被保存在result所指...
❽ 用匯編語言,編寫程序輸出100-200之間所有的素數,每行輸出5個數,在線等,急求!!!!!!!!!!
;用匯編語言,編寫程序輸出100-200之間所有的素數,每行輸出5個數,在線等,急求!!!!!!!!!!
datasegment
n1db20p(0)
NDB0
dataends
codesegment
mainprocfar
assumecs:code,ds:data
start:
PUSHDS
XORAX,AX
PUSHAX
MOVAX,DATA
MOVDS,AX
;
;MOVAX,20000
movax,100;起始數
AGAIN:
cmpax,200;結束數
;cmpax,300
jaexit
MOVBX,2
X1:
CMPBX,AX
JAeEXIT1;YES,DISPIT
PUSHAX
PUSHBX
MOVDX,0
DIVBX
CMPDX,0;YU=0
JEN11;NO
POPBX
POPAX
cmpbx,2;去掉偶數
jaadd2
decbx
add2:
incbx
INCBX
JMPX1
N11:
POPBX
POPAX
JMPN22
EXIT1:;YES,DISPIT
movsi,offsetn1
movdx,0
CALLDIV10
pushax
pushbx
movdx,offsetn1
movah,9
int21h
INCN
MOVAL,N
CMPAL,5;每行顯示5個數
JNEDISP_K
MOVAL,0
MOVN,AL
JMPDISP_CR
DISP_K:
MOVAH,2
MOVDL,''
INT21H
JMPNEXT9
DISP_CR:
movah,2
movdl,0dh
int21h
movdl,0ah
int21h
NEXT9:
popbx
popax
N22:
incax
jmpagain
exit:
RET
;INT20H
mainendp
;=====================
;=====================
;將32位16進制數(DX:AX)轉換為10進制數子程序
;入口:DX:AX存32位16進制數,SI為存放轉換後10進制數的首地址
;出口:在SI中存放轉換後10進制數的ASCII碼
DIV10PROCNEAR
pushax
PUSHBX;保護現場
PUSHCX
PUSHDI
MOVCX,0;每位10進制數進棧計數器
MOVBX,10D;除數10
RE_DIV:
PUSHAX;低16位進棧
MOVAX,DX;先除高16位
MOVDX,0;高位置0
DIVBX;商在AX中,是下一輪除的高位;余數在DX中,它和已進棧的AX(低16位)組成新的32位數
MOVDI,AX;將下一輪除的高位保存在DI
POPAX;取回先前進棧的低16位
DIVBX;除後,商AX是下一輪的低16位,即(DI:AX)組成新的32位被除數;
;余數DX是一位已轉換的10進制數
ADDDX,30H;將其轉換成ASCII碼
PUSHDX;將其進棧
INCCX;進棧計數器加1
MOVDX,DI;將高位商返回DX
CMPAX,0;判斷商是否為0,DX:AX均需為0,實際上就是(DI:AX)這個新組成的32位被除數是否為0
jzdown1;商低位為0
JMPRE_DIV;商低位不為0,繼續除10取余
down1:
cmpdx,0
jzdown;商低位(AX)為0,高位(DX)也為0
JMPRE_DIV;否則繼續除10取余
DOWN:;當DX和AX均為0時(商為0),轉結束除
POP[SI];以CX的值(進棧計數器)依次出棧
INCSI;由於出棧的數僅低8位有效(高位為0),所以SI每次只增1,
;使新出棧的低8位有效值覆蓋前一次出棧的高位0
LOOPDOWN
MOVAL,'$'在字元串尾部加結束標志
MOV[SI],AL
POPDI;恢復現場
POPCX
POPBX
popax
RET
DIV10ENDP
;========================
;========================
codeends
endstart
❾ 匯編語言考試四道編程題,在線等
DATASEGMENT
STRDB'!@#$%?><qwertASDFGZXCVB(*$1235790Kf',0
;這是一個包含任意字元,以0結尾的字元串
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
;---------------------------------
DISP:
MOVAH,2
D_LP:
MOVDL,[SI]
CMPDL,0
JZD_END
INT21H
INCSI
JMPD_LP
D_END:
MOVDL,13
INT21H
MOVDL,10
INT21H
RET
;---------------------------------
PROG:
;把以0結尾的字元串中轉換成"首字母大寫,其餘字母小寫"
DECSI
FIR:
INCSI
MOVAL,[SI]
CMPAL,0
JZP_END
ANDAL,11011111B
CMPAL,'A'
JBFIR
CMPAL,'Z'
JAFIR
MOV[SI],AL
SEC:
INCSI
MOVAL,[SI]
CMPAL,0
JZP_END
ORAL,20H
CMPAL,'a'
JBSEC
CMPAL,'z'
JASEC
MOV[SI],AL
JMPSEC
P_END:
RET
;---------------------------------
START:
MOVAX,DATA
MOVDS,AX
LEASI,STR;取偏移地址
CALLDISP;顯示原字元串
LEASI,STR;取偏移地址
CALLPROG;字元串轉換
LEASI,STR;取偏移地址
CALLDISP;顯示處理後字元串
MOVAX,4C00H
INT21H
;------------------------------------
CODEENDS
ENDSTART
;====================================
上述程序才符合題目要求。
執行後顯示:
c:masm5>mm
!@#$%?><qwertASDFGZXCVB(*$1235790Kf
!@#$%?><Qwertasdfgzxcvb(*$1235790kf
網友採納答案中,對《包含任意字元,以0結尾》的理解,有偏差。
在任意字元中,就包括《$》。
因此,不能為了使用以$為結束符的9號調用,就把$排除在字元串之外。
❿ 匯編語言編程題,和數組有關
以前寫了一半,因太長沒寫完。網上有現成的答案:
新手求教匯編問題!!!!!!!!!!!!!!在線等之。
http://..com/question/148915126.html?si=1