⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_50908.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:50908 发表者:ZGW 发表日期:2003-08-27 18:09:00
<br>主题:请问这是什么语言?&nbsp;&nbsp;内容是什么?
<br>内容:.DOSSEG<BR>.MODEL SMALL<BR>.STACK 200H<BR>.DATA<BR><BR>MSG DB &#34;THIS IS TRUE&#34;, &#34;$&#34;<BR>MSG1 DB &#34;THIS IS QUOTIENT&#34;, &#34;$&#34;<BR>MSG2 DB &#34;THIS IS REMAINDER&#34;, &#34;$&#34;<BR>.CODE<BR>START:<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV AX, @DATA<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV DS, AX<BR><BR><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;CALL INPUTNUMBER<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;CALL SQUAREROOT<BR>&nbsp;&nbsp;&nbsp;&nbsp;CALL CHANGELINE<BR>&nbsp;&nbsp;&nbsp;&nbsp;CALL DISPLAYNUMBER<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV AX, 4C00H<BR>&nbsp;&nbsp;&nbsp;&nbsp;INT 21H<BR><BR><BR>;PASS DIVIDANT, DIVISOR BY STACK<BR>;GET QUOTIENT FROM STACK<BR>QUOTIENT&nbsp;&nbsp;&nbsp;&nbsp;PROC<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH BP<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV BP, SP<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH AX<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV AX, [BP+6]<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH AX<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV AX, [BP+4]<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH AX<BR>&nbsp;&nbsp;&nbsp;&nbsp;CALL DIVIDE<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP AX; USELESS REMAINDER, ONLY POP<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP AX; THIS IS QUOTIENT<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV [BP+6], AX<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP AX; THE ORIGINAL AX SAVED<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP BP<BR>&nbsp;&nbsp;&nbsp;&nbsp;RET 2<BR>QUOTIENT&nbsp;&nbsp;&nbsp;&nbsp;ENDP<BR><BR>;PASS DIVIDANT, DIVISOR BY STACK<BR>;GET MODULOS FROM STACK<BR>MODULE&nbsp;&nbsp;&nbsp;&nbsp;PROC<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH BP<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV BP, SP<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH AX<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV AX, [BP+6]<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH AX<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV AX, [BP+4]<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH AX<BR>&nbsp;&nbsp;&nbsp;&nbsp;CALL DIVIDE<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP AX; THIS IS REMAINDER<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV [BP+6], AX<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP AX; USELESS QUOTIENT, BUT HAVE TO POP OUT TO CLEAR STACK<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP AX; ORIGINAL AX SAVED<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP BP<BR>&nbsp;&nbsp;&nbsp;&nbsp;RET 2<BR>MODULE&nbsp;&nbsp;&nbsp;&nbsp;ENDP<BR><BR><BR><BR>;USE STACK TO PASS DIVIDANT AND DIVISOR<BR>;USE STACK TO RETURN QUOTIENT AND REMAINDER<BR>DIVIDE&nbsp;&nbsp;&nbsp;&nbsp;PROC<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH BP<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV BP, SP<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH AX<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH BX<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH DX<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV AX, [BP+6]; THE DIVIDANT<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV BX, [BP+4]; THE DIVISOR<BR>&nbsp;&nbsp;&nbsp;&nbsp;CMP BH, 0; CHECK IF IT IS A 16BIT DIVIDE OR NOT<BR>&nbsp;&nbsp;&nbsp;&nbsp;JNE SIXTEENDIV<BR>&nbsp;&nbsp;&nbsp;&nbsp;CMP AH, 0<BR>&nbsp;&nbsp;&nbsp;&nbsp;JNE SIXTEENDIV<BR>EIGHTDIV:<BR>&nbsp;&nbsp;&nbsp;&nbsp;DIV BL; 8BIT DIV<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV [BP+6], AL; THE QUOTIENT;<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV [BP+4], AH; THE REMAINDER<BR>&nbsp;&nbsp;&nbsp;&nbsp;JMP ENDDIV<BR>SIXTEENDIV:<BR>&nbsp;&nbsp;&nbsp;&nbsp;DIV BX&nbsp;&nbsp;&nbsp;&nbsp; ; 16BIT DIV<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV [BP+6], AX; THE QUOTIENT<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV [BP+4], DX; THE REMAINDER<BR>ENDDIV:<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP DX<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP BX<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP AX<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP BP<BR>&nbsp;&nbsp;&nbsp;&nbsp;RET<BR>DIVIDE ENDP<BR><BR><BR>CHANGELINE&nbsp;&nbsp; PROC<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH AX<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH DX<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV AH, 02<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV DL, 0DH<BR>&nbsp;&nbsp;&nbsp;&nbsp;INT 21H<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV DL, 0AH<BR>&nbsp;&nbsp;&nbsp;&nbsp;INT 21H<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP DX<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP AX<BR>&nbsp;&nbsp;&nbsp;&nbsp;RET<BR>CHANGELINE&nbsp;&nbsp;ENDP<BR><BR><BR>DISPLAYNUMBER&nbsp;&nbsp;&nbsp;&nbsp;PROC<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH BX<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH CX<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH DX<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV BX, 10<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV CX, 0<BR>BEGINDIVIDE:<BR>&nbsp;&nbsp;&nbsp;&nbsp;CMP AX, 0<BR>&nbsp;&nbsp;&nbsp;&nbsp;JE SHOWRESULT<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH AX<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH BX<BR>&nbsp;&nbsp;&nbsp;&nbsp;CALL DIVIDE<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP DX<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP AX<BR>&nbsp;&nbsp;&nbsp;&nbsp;INC CX<BR>&nbsp;&nbsp;&nbsp;&nbsp;ADD DX, 30H<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH DX<BR>&nbsp;&nbsp;&nbsp;&nbsp;JMP BEGINDIVIDE<BR><BR>SHOWRESULT:<BR>&nbsp;&nbsp;&nbsp;&nbsp;CMP CX, 0<BR>&nbsp;&nbsp;&nbsp;&nbsp;JE&nbsp;&nbsp;ENDDISPLAY<BR>DISPLAYLOOP:<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV AH, 02H<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP DX<BR>&nbsp;&nbsp;&nbsp;&nbsp;INT 21H<BR>&nbsp;&nbsp;&nbsp;&nbsp;LOOP DISPLAYLOOP<BR>ENDDISPLAY:<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP DX<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP CX<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP BX<BR>&nbsp;&nbsp;&nbsp;&nbsp;RET<BR>DISPLAYNUMBER&nbsp;&nbsp;&nbsp;&nbsp;ENDP<BR><BR><BR>SQUAREROOT&nbsp;&nbsp;PROC<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH BX<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH CX<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH DX<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH SI<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH DI<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV CX, 00H<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV BX, AX; BX SAVE THE NUMBER<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;CMP BX, 255; THE BIGGEST ROOT OF 16BIT<BR>&nbsp;&nbsp;&nbsp;&nbsp;JG&nbsp;&nbsp;LOCAL1<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV DI, BX<BR>&nbsp;&nbsp;&nbsp;&nbsp;JMP LOCAL2<BR>LOCAL1:<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV DI, 255; THIS IS UPPER BOUND OF 16BIT ROOT<BR>LOCAL2:<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV SI, 1; LOWBOUND<BR><BR>CHECKRESULT:<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV AX, SI<BR>&nbsp;&nbsp;&nbsp;&nbsp;ADD AX, DI ; AX IS THE SUM OF LOW AND HIGH BOUND<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV DX, 02H<BR>&nbsp;&nbsp;&nbsp;&nbsp;SHR AX, 1<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV CX, AX<BR>&nbsp;&nbsp;&nbsp;&nbsp;MUL AX; AX IS THE SQUARE OF CX<BR>COMPARE:<BR>&nbsp;&nbsp;&nbsp;&nbsp;CMP AX, BX<BR>&nbsp;&nbsp;&nbsp;&nbsp;JE&nbsp;&nbsp;FINDRESULT<BR>&nbsp;&nbsp;&nbsp;&nbsp;CMP AX, BX<BR>&nbsp;&nbsp;&nbsp;&nbsp;JB&nbsp;&nbsp;SMALLER<BR><BR>BIGGERR:<BR>&nbsp;&nbsp;&nbsp;&nbsp;DEC CX<BR>&nbsp;&nbsp;&nbsp;&nbsp;CMP CX, SI; COMPARE LOWBOUND<BR>&nbsp;&nbsp;&nbsp;&nbsp;JL&nbsp;&nbsp;FINDRESULT; EXCEED LOW BOUND<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV DI, CX;NEW HIGH BOUND<BR>&nbsp;&nbsp;&nbsp;&nbsp;JMP NEXT<BR><BR>SMALLER:<BR>&nbsp;&nbsp;&nbsp;&nbsp;INC CX<BR>&nbsp;&nbsp;&nbsp;&nbsp;CMP CX, DI; COMPARE HIGHBOUND<BR>&nbsp;&nbsp;&nbsp;&nbsp;JG FINDRESULT&nbsp;&nbsp;; EXCEED LOW BOUND<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV SI, CX; NEW LOW BOUND<BR>&nbsp;&nbsp;&nbsp;&nbsp;JMP NEXT<BR>NEXT:<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;JMP CHECKRESULT<BR>FINDRESULT:<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV AX, CX; RESULT IS RETURN IN AX<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP DI<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP SI<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP DX<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP CX<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP BX<BR>&nbsp;&nbsp;&nbsp;&nbsp;RET<BR>SQUAREROOT&nbsp;&nbsp;ENDP<BR><BR><BR>INPUTNUMBER PROC<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH BX<BR>&nbsp;&nbsp;&nbsp;&nbsp;PUSH CX<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV AX, 00H<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV BX, 00H<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV CX, 00H<BR><BR>CHECK:<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV AH, 01H<BR>&nbsp;&nbsp;&nbsp;&nbsp;INT 21H<BR>&nbsp;&nbsp;&nbsp;&nbsp;CMP AL, 0DH<BR>&nbsp;&nbsp;&nbsp;&nbsp;JE ENDINPUT<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV CL, AL; SAVE INPUT IN CX<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV AX, 10; PREPARE MUL<BR>&nbsp;&nbsp;&nbsp;&nbsp;MUL BX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; OLD DATA IN BX<BR>&nbsp;&nbsp;&nbsp;&nbsp;SUB CX, 30H; CX TO BE NUBMERS<BR>&nbsp;&nbsp;&nbsp;&nbsp;ADD AX, CX<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV BX, AX; SAVE DATA IN BX<BR>&nbsp;&nbsp;&nbsp;&nbsp;JMP CHECK<BR><BR>ENDINPUT:<BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV AX, BX; RETURN VALUE IN AX<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP CX<BR>&nbsp;&nbsp;&nbsp;&nbsp;POP BX<BR>&nbsp;&nbsp;&nbsp;&nbsp;RET<BR>INPUTNUMBER ENDP<BR><BR>END START<BR>END<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:爱丽思 回复日期:2003-08-27 20:55:10
<br>内容:这就是x86的汇编语言啊
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -