亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sin.asm

?? 正弦波信號發生器 1、摘要:使用查表法在屏幕上顯示正弦波信號。 2、參考資料: IBM-PC匯編語言程序設計(第二版) Intel匯編語言程序設計(第四版) (匯編語言)
?? ASM
字號:
;******************************************************************************************
;題目:正弦波信號發生器
;要求:要求模擬正弦波信號發生器,將正弦波信號顯示在顯示器上,信號的周期,峰;值可以鍵盤輸入。
;應用:理解數字信號的發生原理。
;提示:運用分支,循環,子程序等編程形式,運用鍵盤顯示器,文件的中斷調用。
;-----------------------------------------------------------------------
;注意:所畫圖形必須在全屏狀態下才能顯示。
;******************************************************************************************
mode_11 =       11h     ;640*480 2 colors
x_axisy =       240
x_axisx =       20
x_axislen =     600

y_axisx =       320
y_axisy =       10
y_axislen =     460
white	=	1

;ax:line bx:colomn
writedot	macro		;寫像素
	mov	cx,ax
	mov	dx,bx
	mov	ah,0ch
	mov	al,01
	mov	bh,0
        int     10h
        endm

data	segment
 direction	db	?
 angle	dw	?
 savemode	db	?
 currX	dw	?
 currY	dw	?
 t	db	6,?,7 dup(?)	;周期
 num_t	dw	?
 a	db	5,?,6 dup(?)	;幅度
 num_a	dw	?
 mess_t	db	'T:$'
 mess_a	db	'A:$'
 mess1	db	13,10,"Error:Over flow!",13,10,'$'
 table	db	100,100,100,100,100,100,099,099,099,099
	db	098,098,098,097,097,097,096,096,095,095
	db	094,093,093,092,091,091,090,089,088,087
	db	087,086,085,084,083,082,081,080,079,078
	db	077,075,074,073,072,071,069,068,067,066
	db	064,063,062,060,059,057,056,054,053,052
	db	050,048,047,045,044,042,041,039,037,036
	db	034,033,031,029,028,026,024,022,021,019
	db	017,016,014,012,010,009,007,005,003,002,000
data	ends
code	segment
	assume cs:code,ds:data
main	proc	far
	mov	ax,data
	mov	ds,ax

	call	input		;輸入周期和峰值
	call	xy		;畫笛卡爾坐標系

	mov	direction,0	;畫正半軸
	call	DrawSin
	mov	direction,1	;畫負半軸
	call	DrawSin

;Wait for a keystroke
	mov	ah,10h		;wait for key
	int	16h

;Restroe the starting video mode
	mov	ah,0
	mov	al,savemode
	int	10h

;Return to Dos
	mov	ax,4c00h
	int	21h
	
main	endp

;-------------------------------------------------------------------------
;function: 在指定范圍畫出正弦波(從零開始畫)
;input:direction=0 正向
;		=1 負向
;-------------------------------------------------------------------------
DrawSin	proc	near

	mov	angle,0
next:	mov	ax,angle

	sub	ax,90		;90-ax
	neg	ax

	call	search

	mov	ax,bx		;bx*num_a/100
	mov	cx,num_a
	imul	cx		;(dx,ax)
	mov	cx,100
	idiv	cx
	mov	bx,ax

	cmp	bx,-240
	jl	modify
	cmp	bx,240
	jg	modify

	sub	bx,240		;240-bx
	neg	bx

	mov	ax,angle	;ax+320

	mov	cx,num_t	;ax*num_t/100
	imul	cx
	mov	cx,100
	idiv	cx

	cmp	ax,-320
	jl	DrawSin_exit
	cmp	ax,320
	jge	DrawSin_exit

	add	ax,320

	writedot

modify:	cmp	direction,0
	jne	reverse
	inc	angle
	jmp	next
reverse:dec	angle
	jmp	next

DrawSin_exit:
	ret
DrawSin	endp
;------------------------------------------------------------------------- 
;search子程: 
;input:ax存放度數 
;output:bx:函數值*100 
;require:以table為首的余弦函數表(僅有2位小數)
;------------------------------------------------------------------------- 
search	proc	near 

	push	ax
	push	cx
	push	dx

	mov	cl,0		;初始化整數部分(默認為零)
	mov	ch,-1 

	cmp	ax,0
	jg	greater
	neg	ax
greater:
	cmp	ax,360		;0<=ax<=360則轉移 
	jle	between_0_and_360
	cwd			;將ax轉化到[0,360]之間 
	mov	bx,360
	idiv	bx		;(dx,ax)/bx 
	mov	ax,dx		;ax中為轉化好的度數
 
between_0_and_360:

	sub	ax,180
	cmp	ax,0
	jg	search_plus
	neg	ax		;負數時求補 
search_plus:
	cmp	ax,90
	jle	find		;[0,90)之間,直接去查找
	sub	ax,180		;[90,180]之間時,函數值為正
	neg	ax
	mov	ch,1
 
find:	mov	bx,ax		;確定小數部分 
        mov     dl,table[bx]
	mov	dh,0 
	mov	bx,dx

	cmp	ch,-1
	jne	search_exit
	neg	bx
search_exit:

	pop	dx
	pop	cx
	pop	ax
	ret 
search	endp
;------------------------------------------------------------------------- 
;畫笛卡爾坐標系
;------------------------------------------------------------------------- 
xy	proc	near
;Save the current video mode
	mov	ah,0fh		;get video mode
	int	10h
	mov	savemode,al
;Switch to a graphics mode
	mov	ah,0		;set video mode
        mov     al,mode_11
	int	10h
;Draw the X-axis
	mov	cx,x_axisx	;X-coord of start of line
	mov	dx,x_axisy	;Y-coord of start of line
	mov	ax,x_axislen	;length of line
	mov	bl,white	;line color
	call	DrawHorizLine
;Draw the Y-axis
	mov	cx,y_axisx	;X-coord of start of line
	mov	dx,y_axisy	;Y-coord of start of line
	mov	ax,y_axislen	;length of line
	mov	bl,white	;line color
	call	DrawVerticalLine

	ret
xy	endp
;--------------------------------------------------------------
DrawhorizLine	proc
;
;Draw a horizontal line starting at position X,Y with
;Receives: CX=X-coordinate, DX=Y-coordinate
;	   AX=length,and BL=color
;REturns:nothing
;---------------------------------------------------------------
        push    cx


        mov     currX,cx         ;save X-coordinate
	mov	cx,ax		;loop counter

dhl1:   push    cx              ;save loop counter
	mov	al,bl		;color
	mov	ah,0ch		;draw pixel
	mov	bh,0		;video page
	mov	cx,currX	;retrieve X-coordinate
	int	10h
	inc	currx		;move 1 pixel to the right
	pop	cx		;restroe loop counter
	loop	dhl1

        pop     cx
	ret
DrawHorizLine	endp

;--------------------------------------------------------------
DrawVerticalLine	proc
;
;Draw a vertical line starting at position X,Y with
;a given length and color
;Receives: CX=X-coordinate,DX=Y-coordinate,
;	   AX=length,BL=color
;Returns:nothing
;---------------------------------------------------------------
        push    cx


	mov	currY,dx	;save Y-coordinate
	mov	currX,cx	;save X-coordinate
	mov	cx,ax		;loop counter

dvl1:	push	cx		;save loop counter
	mov	al,bl		;color
	mov	ah,0ch		;function:draw pixel
	mov	bh,0		;set video page
	mov	cx,currX	;set X-coordinate
	mov	dx,currY	;set Y-coordinate
	int	10h		;draw the pixel
	inc	currY		;move down 1 pixel
        pop     cx              ;restore loop counter
	loop	dvl1

        pop     cx
	ret
DrawVerticalLine	endp
;---------------------------------------------------------------
;將ax中的數轉換為10進制數輸出。
;---------------------------------------------------------------
binidec proc	near

        push    cx
        push    dx
        push    ax
	push	bx
        pushf

;MAIN PART OF THE PROGRAM GOES HERE:
	mov	ch,0		;CH為0則AX為正數,CH為1則Ax為負數
	cmp	ax,0
	jge	normal
	neg	ax
	mov	ch,1
normal: mov     cl,0            ;計數器置零
        mov     bx,10
binidec_next:
	mov	dx,0
	div     bx
        push    dx
        inc     cl
        cmp     ax,0
        jne     binidec_next

	cmp	ch,1
	jne	print
	mov	ah,2
	mov	dl,'-'
	int	21h
print:  pop     ax
        mov     dl,al
        add     dl,30h
        mov     ah,2
        int     21h
        dec     cl
        jne     print


        popf
	pop	bx
        pop     ax
        pop     dx
        pop     cx

	ret
binidec	endp
;--------------------------------------------------------------
;function:輸入周期值和峰值
;input:none
;output:將周期值和峰值分別放入num_t和num_a中
;--------------------------------------------------------------
input	proc	near
	mov	ah,9
	mov	dx,offset mess_t
	int	21h

	mov	ah,0ah			;輸入t
	mov	dx,offset t
	int	21h

	mov	ah,2			;輸出回車換行
	mov	dl,0dh
	int	21h
	mov	dl,0ah
	int	21h

	mov	bl,t+1			;在表達式末尾加';'
	mov	bh,0
	mov	t[bx+2],';'

	mov	si,offset t+2
	call	decibin

	mov	cx,100			;ax*100/360
	mul	cx
	mov	cx,360
	div	cx

	mov	num_t,ax

	mov	ah,9
	mov	dx,offset mess_a
	int	21h

	mov	ah,0ah			;輸入a
	mov	dx,offset a
	int	21h

	mov	ah,2			;輸出回車換行
	mov	dl,0dh
	int	21h
	mov	dl,0ah
	int	21h

	mov	bl,a+1			;在表達式末尾加';'
	mov	bh,0
	mov	a[bx+2],';'

	mov	si,offset a+2
	call	decibin
	mov	cx,100			;ax=整數部分*100
	mul	cx
	jo	input_error
	mov	cx,ax

	cmp	byte ptr [si+1],'.'
	jne	input_mov
	add	si,2
	call	decibin			;轉化小數部分
	cmp	ax,10
	ja	input_add
	mov	bx,10			;若小數部分只有一位則乘以10
	mul	bx
input_add:
	add	ax,cx			;小數部分+整數部分
input_mov:
	mov	num_a,ax

	ret
input_error:
	jmp	decibin_error1
input	endp
;-----------------------------------------------------------
;function:將十進制數轉換為二進制數
;input:Si指向表達式
;output:轉換后的數放在AX中
;instruction:遇到非數字字符就認為該串數字結束
;	     如數字過大導致溢出,則輸出提示信息后程序結束
;	     出錯信息名為mess1,請在數據段中定義
;-----------------------------------------------------------
decibin	proc	near

	push	bx
	push	cx
	push	dx

	mov	bx,0
newchar:mov	al,byte	ptr [si]
	sub	al,30h
	jl	exit
	cmp	al,9d
	jg	exit
	cbw
;digit is now in AX
;Multiply number in BX by 10 decimal
	xchg	ax,bx
	mov	cx,10d
	imul	cx
	jno	c1
	jmp	decibin_error1
c1:	xchg	ax,bx
;Add digit in AX to number in BX
	add	bx,ax
	jno	c2
	jmp	decibin_error1
c2:	inc	si
	jmp	newchar
exit:	mov	ax,bx		;將得數存入AX
	dec	si		;保證SI指向的是數字的最后一個

	pop	dx
	pop	cx
	pop	bx

	ret
decibin_error1:			;出錯處理
	mov	ah,9
	mov	dx,offset mess1
	int	21h
	mov	ax,4c00h
	int	21h
decibin	endp

code	ends
	end	main

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91美女在线看| 亚洲成av人片一区二区| 国产一区二区三区最好精华液| 欧美一二三在线| 精品一区二区在线免费观看| 精品国产不卡一区二区三区| 国产精品123| 亚洲区小说区图片区qvod| av不卡免费电影| 亚洲成人黄色小说| 精品免费日韩av| 成人av资源站| 亚洲国产乱码最新视频 | **网站欧美大片在线观看| 成人黄色大片在线观看| 樱桃视频在线观看一区| 欧美日韩国产一级片| 六月婷婷色综合| 中文成人av在线| 日本乱人伦一区| 亚洲一区在线电影| 精品日韩99亚洲| 91视频国产资源| 免费高清成人在线| 国产精品久久久久一区二区三区共| 色综合久久88色综合天天| 日韩va亚洲va欧美va久久| 中文字幕第一区二区| 日本韩国精品在线| 麻豆国产欧美日韩综合精品二区| 国产精品丝袜久久久久久app| 色婷婷av一区二区三区软件| 日韩电影网1区2区| 国产精品理论在线观看| 7777精品伊人久久久大香线蕉的 | 日韩一区二区高清| 成人av资源网站| 另类成人小视频在线| 综合久久久久久| 精品国产乱码久久久久久久久| 一本久久a久久精品亚洲| 久久99国产精品成人| 一区二区三区在线观看国产| 久久久美女艺术照精彩视频福利播放| 91福利视频久久久久| 国产成人亚洲综合a∨婷婷 | 亚洲免费资源在线播放| 久久影院午夜论| 欧美精品久久一区二区三区| 99久久久久久| 国产成人亚洲综合a∨猫咪| 日本亚洲最大的色成网站www| 亚洲女人小视频在线观看| 久久久久国产精品麻豆ai换脸| 9191久久久久久久久久久| 91女神在线视频| 成人在线一区二区三区| 国产一区二区主播在线| 日韩精品欧美精品| 亚洲成人精品在线观看| 亚洲另类一区二区| 亚洲日本护士毛茸茸| 国产精品人人做人人爽人人添| 久久久久久一二三区| 日韩欧美区一区二| 日韩免费视频一区| 91精品福利在线一区二区三区| 欧美三级日韩在线| 在线亚洲高清视频| 91成人免费在线| 欧美自拍丝袜亚洲| 欧美在线制服丝袜| 欧美日韩成人一区| 在线成人午夜影院| 91精品国产福利在线观看| 欧美日韩久久一区| 337p亚洲精品色噜噜| 欧美伦理视频网站| 欧美一级专区免费大片| 91精品国产91热久久久做人人 | 国产亚洲视频系列| 久久久另类综合| 久久久美女毛片| 国产日韩欧美综合一区| 国产欧美日韩精品在线| 中文字幕不卡在线播放| 中文字幕 久热精品 视频在线| 国产精品女主播在线观看| 中文在线资源观看网站视频免费不卡 | 成人午夜视频在线| 不卡av在线网| 91福利视频久久久久| 欧美精品视频www在线观看| 欧美一区二区三级| 欧美不卡123| 中文字幕二三区不卡| 亚洲日本青草视频在线怡红院 | 色噜噜狠狠成人中文综合| 91久久人澡人人添人人爽欧美| 日本韩国精品在线| 日韩精品最新网址| 国产精品网曝门| 亚洲大片在线观看| 国产在线视频一区二区三区| 成人一区二区三区在线观看| 色综合中文字幕国产 | 国产精品久久久久久亚洲毛片 | 韩国中文字幕2020精品| 粉嫩av亚洲一区二区图片| 在线一区二区三区四区| 日韩欧美一区二区三区在线| 久久看人人爽人人| 亚洲综合色婷婷| 精品一区二区三区免费观看| 成人午夜大片免费观看| 欧美视频一区二区| 国产婷婷一区二区| 亚洲午夜在线视频| 国产精品一区二区三区网站| 色综合久久久久综合99| 日韩欧美在线一区二区三区| 国产精品久久久一区麻豆最新章节| 亚洲一区二区三区三| 国产乱子伦一区二区三区国色天香| 91玉足脚交白嫩脚丫在线播放| 日韩一级欧美一级| 亚洲女同ⅹxx女同tv| 国产一区二区精品在线观看| 在线日韩av片| 国产丝袜美腿一区二区三区| 亚洲成人福利片| 97se亚洲国产综合自在线| 精品欧美一区二区三区精品久久 | 91啪在线观看| 国产拍欧美日韩视频二区| 日日夜夜免费精品视频| 成人精品国产免费网站| 欧美电影免费观看高清完整版| 亚洲欧美视频一区| 国产精品一二三四五| 欧美一区二区免费视频| 夜夜嗨av一区二区三区| 成人黄色大片在线观看| 精品久久久久香蕉网| 午夜精品久久久久久不卡8050| 成人av午夜电影| 久久精品一区二区三区四区| 日本欧美大码aⅴ在线播放| 日本精品裸体写真集在线观看| 国产午夜精品一区二区| 久草在线在线精品观看| 欧美一区二区黄色| 三级欧美在线一区| 欧美视频在线一区二区三区| 亚洲免费在线电影| eeuss影院一区二区三区| 欧美国产激情二区三区| 国产丶欧美丶日本不卡视频| 日韩欧美在线一区二区三区| 免费在线观看一区| 欧美一卡2卡3卡4卡| 日本成人超碰在线观看| 欧美日本高清视频在线观看| 一区二区三区欧美| 91激情五月电影| 亚洲在线观看免费视频| 色屁屁一区二区| 亚洲精品自拍动漫在线| 日本二三区不卡| 亚洲成av人片www| 91精品国产综合久久久久| 麻豆视频一区二区| 欧美mv日韩mv亚洲| 国内精品自线一区二区三区视频| 日韩视频免费观看高清完整版在线观看 | 亚洲乱码日产精品bd| 91丨九色porny丨蝌蚪| 亚洲日本va午夜在线电影| 91麻豆精品视频| 亚洲国产美女搞黄色| 日韩视频在线你懂得| 国产精品一二三区| 国产精品沙发午睡系列990531| 成人av高清在线| 一区二区高清在线| 欧美年轻男男videosbes| 青青草精品视频| 久久久亚洲欧洲日产国码αv| www.一区二区| 亚洲高清不卡在线观看| 日韩美女视频在线| 成人永久aaa| 香蕉久久一区二区不卡无毒影院| 日韩欧美国产综合| 岛国一区二区三区| 亚洲无线码一区二区三区| 日韩免费观看高清完整版在线观看| 丁香婷婷深情五月亚洲| 伊人夜夜躁av伊人久久| 日韩欧美国产一二三区|