<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>知名博客 &#187; 汇编源码</title>
	<atom:link href="http://notdot.cn/post/category/%e6%b1%87%e7%bc%96%e6%ba%90%e7%a0%81/feed" rel="self" type="application/rss+xml" />
	<link>http://notdot.cn</link>
	<description>知而传之，名扬天下！</description>
	<lastBuildDate>Tue, 23 Jun 2009 01:01:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>角度正弦值计算程序设计</title>
		<link>http://notdot.cn/post/329.htm</link>
		<comments>http://notdot.cn/post/329.htm#comments</comments>
		<pubDate>Mon, 23 Feb 2009 22:19:59 +0000</pubDate>
		<dc:creator>ohhe</dc:creator>
				<category><![CDATA[汇编源码]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=325</guid>
		<description><![CDATA[角度正弦值计算程序设计.
]]></description>
			<content:encoded><![CDATA[<p>&#160;</p>
<p>查表法角度正弦值计算程序设计</p>
<p>DATA SEGMENT</p>
<p>MSG1 DB 05H,0B1H,0B2H,&#8217;PLEASE INPUT THE ANGLE&#8217;,01,0AH,0DH ;欢迎界面字样和图画</p>
<p>INPUTS DB 3H DUP(0) ;用户输入数据的ASCII码形式暂存单元</p>
<p>DIZHI DW 1H DUP(0) ;取正弦表的偏移地址</p>
<p>RESULT DB 00H,00H,&#8217;$&#8217; ;结果的小数部分</p>
<p>FINAL DB 00H,00H,00H,00H,0AH,0DH,&#8217;$&#8217;</p>
<p>CUOWU1 DB 0AH,0DH,&#8217;Your input is illegal&#8217;,0AH,0DH,&#8217;$';输入错误提示</p>
<p>CUOWU2 DB &#8216;The number you input must in [0~360]&#8216;,0AH,0DH,&#8217;$&#8217;</p>
<p>OUT1 DB 0AH,0DH,&#8217;SIN&#8217;,0E0H,&#8217;=0.&#8217;,'$&#8217;</p>
<p>OUT2 DB 0AH,0DH,&#8217;SIN&#8217;,0E0H,&#8217;=-0.&#8217;,'$&#8217;</p>
<p>TISHI DB 0AH,0DH,&#8217;PRESS Q TO EXIT&#8217;,0AH,0DH,&#8217;$';正弦表</p>
<p>TAB DB 99H,99H,99H,98H ;90,89度正弦值</p>
<p>DB 99H,93H,99H,86H ;88,87度正弦值</p>
<p>DB 99H,75H,99H,61H ;86,85度正弦值</p>
<p>DB 99H,45H,99H,25H ;84,83度正弦值</p>
<p>DB 99H,02H,98H,77H ;82,81度正弦值</p>
<p>DB 98H,48H,98H,16H ;80,79度正弦值</p>
<p>DB 97H,81H,97H,44H ;78,77度正弦值</p>
<p>DB 97H,03H,96H,59H ;76,75度正弦值</p>
<p>DB 96H,13H,95H,63H ;74,73度正弦值</p>
<p>DB 95H,11H,94H,55H ;72,71度正弦值</p>
<p>DB 93H,97H,93H,36H ;70,69度正弦值</p>
<p>DB 92H,72H,92H,05H ;68,67度正弦值</p>
<p>DB 91H,35H,90H,63H ;66,65度正弦值</p>
<p>DB 89H,88H,89H,10H ;64,63度正弦值</p>
<p>DB 88H,29H,87H,46H ;62,61度正弦值</p>
<p>DB 86H,60H,85H,72H ;60,59度正弦值</p>
<p>DB 84H,80H,83H,87H ;58,57度正弦值</p>
<p>DB 82H,90H,81H,92H ;56,55度正弦值</p>
<p>DB 80H,90H,79H,86H ;54,53度正弦值</p>
<p>DB 78H,80H,77H,71H ;52,51度正弦值</p>
<p>DB 76H,60H,75H,47H ;50,49度正弦值</p>
<p>DB 74H,31H,73H,14H ;48,47度正弦值</p>
<p>DB 71H,93H,70H,71H ;46,45度正弦值</p>
<p>DB 69H,46H,68H,20H ;44,43度正弦值</p>
<p>DB 66H,91H,65H,61H ;42,41度正弦值</p>
<p>DB 64H,28H,62H,93H ;40,39度正弦值</p>
<p>DB 61H,57H,60H,18H ;38,37度正弦值</p>
<p>DB 58H,78H,57H,36H ;36,35度正弦值</p>
<p>DB 55H,92H,54H,46H ;34,33度正弦值</p>
<p>DB 52H,99H,51H,50H ;32,31度正弦值</p>
<p>DB 50H,00H,48H,48H ;30,29度正弦值</p>
<p>DB 46H,95H,45H,40H ;28,27度正弦值</p>
<p>DB 43H,84H,42H,26H ;26,25度正弦值</p>
<p>DB 40H,67H,39H,07H ;24,23度正弦值</p>
<p>DB 37H,46H,35H,84H ;22,21度正弦值</p>
<p>DB 34H,20H,32H,56H ;20,19度正弦值</p>
<p>DB 30H,90H,29H,24H ;18,17度正弦值</p>
<p>DB 27H,56H,25H,88H ;16,15度正弦值</p>
<p>DB 24H,19H,22H,50H ;14,13度正弦值</p>
<p>DB 20H,79H,19H,08H ;12,11度正弦值</p>
<p>DB 17H,36H,15H,64H ;10,9度正弦值</p>
<p>DB 13H,92H,12H,19H ;8,7度正弦值</p>
<p>DB 10H,45H,08H,72H ;6,5度正弦值</p>
<p>DB 06H,97H,05H,23H ;4,3度正弦值</p>
<p>DB 03H,49H,01H,75H ;2,1度正弦值</p>
<p>DB 00H,00H ;0度正弦值</p>
<p>DATA ENDS</p>
<p>STACK1 SEGMENT</p>
<p>DB 100H DUP(?)</p>
<p>STACK1 ENDS</p>
<p>CODE SEGMENT</p>
<p>ASSUME CS:CODE,DS:DATA,SS:STACK1</p>
<p>START:</p>
<p>MOV AX,DATA</p>
<p>MOV DS,AX</p>
<p>MOV AX,STACK1</p>
<p>MOV SS,AX</p>
<p>MOV AX,0010H ;设置屏幕的显示方式</p>
<p>INT 10H</p>
<p>ST0: MOV AH,0H ;程序的初始化清零</p>
<p>MOV INPUTS,AH</p>
<p>MOV [INPUTS+1],AH</p>
<p>MOV [INPUTS+2],AH</p>
<p>MOV AX,0H</p>
<p>MOV BX,0H </p>
<p>MOV SI,0H ;设置初始欢迎界面的字符颜色，并输出</p>
<p>ST1: MOV AL,[MSG1+SI]</p>
<p>MOV BL,01H ;字体颜色</p>
<p>MOV AH,0EH</p>
<p>INT 10H</p>
<p>INC SI</p>
<p>CMP SI,1DH</p>
<p>JZ SHURU</p>
<p>JMP ST1</p>
<p>SHURU: </p>
<p>MOV AL,0E0H ;显示“a＝”字样，提示用户输入角度</p>
<p>MOV BL,0dH</p>
<p>MOV AH,0EH</p>
<p>INT 10H</p>
<p>MOV AL,03DH</p>
<p>MOV BL,0dH</p>
<p>MOV AH,0EH</p>
<p>INT 10H</p>
<p>CALL INPUT ;否则开始用户输入过程</p>
<p>MOV AX,DIZHI</p>
<p>CMP AX,05AH ;判断输入值的范围</p>
<p>JBE CHA1</p>
<p>CMP AX,0B4H</p>
<p>JBE CHA2 </p>
<p>CMP AX,10EH</p>
<p>JBE CHA3</p>
<p>CMP AX,168H</p>
<p>JBE CHA4</p>
<p>JMP ERRR </p>
<p>CHA1:</p>
<p>MOV BX,5AH</p>
<p>XCHG AX,BX</p>
<p>SUB AX,BX ;0～90度范围情况</p>
<p>MOV CX,2H</p>
<p>MUL CL</p>
<p>MOV BX,AX</p>
<p>MOV AH,[TAB+BX]</p>
<p>MOV AL,[TAB+BX+1]</p>
<p>MOV [RESULT],AH</p>
<p>MOV [RESULT+1],AL</p>
<p>JMP XIANSHI</p>
<p>CHA2: MOV BX,0B4H ;91~180度范围情况</p>
<p>XCHG AX,BX</p>
<p>SUB AX,5AH</p>
<p>MOV CX,2H</p>
<p>MUL CL</p>
<p>MOV BX,AX</p>
<p>MOV AH,[TAB+BX]</p>
<p>MOV AL,[TAB+BX+1]</p>
<p>MOV [RESULT],AH</p>
<p>MOV [RESULT+1],AL</p>
<p>JMP XIANSHI </p>
<p>CHA3: SUB AX,0B4H ;181~270度范围情况</p>
<p>MOV BX,5AH</p>
<p>XCHG AX,BX</p>
<p>SUB AX,BX</p>
<p>MOV CX,2H</p>
<p>MUL CL</p>
<p>MOV BX,AX</p>
<p>MOV AH,[TAB+BX]</p>
<p>MOV AL,[TAB+BX+1]</p>
<p>MOV [RESULT],AH</p>
<p>MOV [RESULT+1],AL</p>
<p>JMP XIANSHI2</p>
<p>CHA4: MOV BX,168H ;270~360度范围情况</p>
<p>XCHG AX,BX</p>
<p>SUB AX,BX</p>
<p>XCHG AX,BX</p>
<p>SUB AX,5AH</p>
<p>MOV CX,2H</p>
<p>MUL CL</p>
<p>MOV BX,AX</p>
<p>MOV AH,[TAB+BX]</p>
<p>MOV AL,[TAB+BX+1]</p>
<p>MOV [RESULT],AH</p>
<p>MOV [RESULT+1],AL</p>
<p>JMP XIANSHI2 </p>
<p>ERRR: MOV DX,OFFSET CUOWU1</p>
<p>;输入范围有误或输入内容不为数字的提示处理</p>
<p>CALL ODS</p>
<p>MOV DX,OFFSET CUOWU2</p>
<p>CALL ODS</p>
<p>MOV DX,OFFSET TISHI</p>
<p>CALL ODS</p>
<p>JMP SHURU</p>
<p>XIANSHI:CALL CHANGE</p>
<p>MOV DX,OFFSET OUT1 ;最终结果显示</p>
<p>CALL ODS</p>
<p>MOV DX,OFFSET FINAL</p>
<p>CALL ODS</p>
<p>MOV DX,OFFSET TISHI</p>
<p>CALL ODS</p>
<p>JMP ST0</p>
<p>XIANSHI2:CALL CHANGE</p>
<p>MOV DX,OFFSET OUT2 </p>
<p>CALL ODS</p>
<p>MOV DX,OFFSET FINAL</p>
<p>CALL ODS</p>
<p>MOV DX,OFFSET TISHI</p>
<p>CALL ODS</p>
<p>JMP ST0</p>
<p>INPUT PROC NEAR ;输入子程序</p>
<p>MOV SI,0</p>
<p>INPUT1:MOV AH,01H ;用户输入过程</p>
<p>INT 21H</p>
<p>CMP SI,0H</p>
<p>JZ YZX</p>
<p>JMP YZX1</p>
<p>YZX: CMP AL,0DH</p>
<p>JZ ERRR</p>
<p>YZX1: CMP AL,0DH</p>
<p>JZ INPUT2</p>
<p>CMP AL,&#8217;q&#8217; ;按q或Q则退出</p>
<p>JZ EXIT</p>
<p>CMP AL,&#8217;Q&#8217;</p>
<p>JZ EXIT</p>
<p>CMP AL,30H ;初步判断用户输入合法性</p>
<p>JB ERRR</p>
<p>CMP AL,39H</p>
<p>JA ERRR</p>
<p>MOV [INPUTS+SI],AL</p>
<p>INC SI</p>
<p>CMP SI,3</p>
<p>JZ INPUT2</p>
<p>JMP INPUT1</p>
<p>INPUT2:CALL CAL</p>
<p>RET</p>
<p>INPUT ENDP</p>
<p>CAL PROC NEAR ;用户输入ASCII码的计算子程序</p>
<p>MOV AX,0</p>
<p>MOV AL,[INPUTS+2]</p>
<p>CMP AL,0</p>
<p>JZ FANGFA2</p>
<p>MOV AL,INPUTS ;当输入为三位数时的输入数据处理方法</p>
<p>SUB AL,30H</p>
<p>MOV BL,64H</p>
<p>MUL BL</p>
<p>MOV DIZHI,AX</p>
<p>MOV AL,[INPUTS+1]</p>
<p>SUB AL,30H</p>
<p>MOV BL,0AH</p>
<p>MUL BL</p>
<p>ADD DIZHI,AX</p>
<p>MOV AL,[INPUTS+2]</p>
<p>MOV AH,0</p>
<p>SUB AL,30H</p>
<p>ADD DIZHI,AX</p>
<p>JMP CALEND</p>
<p>FANGFA2:MOV AX,0</p>
<p>MOV AL,[INPUTS+1]</p>
<p>CMP AL,0</p>
<p>JZ FANGFA1</p>
<p>MOV AL,INPUTS ;当输入为两位数时的输入数据处理方法</p>
<p>SUB AL,30H</p>
<p>MOV BL,0AH</p>
<p>MUL BL</p>
<p>MOV DIZHI,AX</p>
<p>MOV AL,[INPUTS+1]</p>
<p>SUB AL,30H</p>
<p>ADD DIZHI,AX</p>
<p>JMP CALEND</p>
<p>FANGFA1:</p>
<p>MOV BX,0 ;当输入为一位数时的输入数据处理方法</p>
<p>MOV BL,INPUTS</p>
<p>SUB BL,30H</p>
<p>MOV DIZHI,BX</p>
<p>CALEND:</p>
<p>RET</p>
<p>CAL ENDP</p>
<p>ODS PROC NEAR ;结果显示子程序</p>
<p>MOV AH,09H</p>
<p>INT 21H</p>
<p>RET</p>
<p>ODS ENDP</p>
<p>CHANGE PROC NEAR ；最终结果转化子程序</p>
<p>MOV SI,0</p>
<p>MOV DI,0</p>
<p>CHANGE1:MOV AX,0H</p>
<p>MOV AL,[RESULT+SI]</p>
<p>MOV BL,10H</p>
<p>DIV BL</p>
<p>ADD AH,30H</p>
<p>ADD AL,30H</p>
<p>MOV [FINAL+DI],AL</p>
<p>MOV [FINAL+DI+1],AH</p>
<p>INC SI</p>
<p>ADD DI,2</p>
<p>CMP SI,2</p>
<p>JZ CHANGE2</p>
<p>JMP CHANGE1</p>
<p>CHANGE2:</p>
<p>RET</p>
<p>CHANGE ENDP</p>
<p>EXIT: ；程序退出点</p>
<p>MOV AH,4CH</p>
<p>INT 21H</p>
<p>CODE ENDS</p>
<p>END START</p>
]]></content:encoded>
			<wfw:commentRss>http://notdot.cn/post/329.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->