. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->直接定址表
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  16.3书上例子:三角函数子程序  [待解决] 回复[ 1次 ]   点击[ 235次 ]  
1152659530
[帖 主]   [ 发表时间:2023-08-13 22:26 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2023-07-25 10:13
assume cs:code,ds:data

data segment
                table dw ag0,ag30,ag60,ag90,ag120,ag150,ag180
                ag0 db '0',0
                ag30 db '0.5',0
                ag60 db '0.866',0
                ag90 db '1',0
                ag120 db '0.866',0
                ag150 db '0.5',0
                ag180 db '0',0
                        
data ends

code segment
           start:
                                        mov ax,data           表放在data段里面
                                        mov ds,ax
                                        mov ax,60             默认参数为60度,放在ax里
                                        
                                        call show
                                        
                                        mov ax,4c00h
                                        int 21h
                                        
                show:
                                        push bx
                                        push es
                                        push si
                                        
                                        cmp ax,0              检查参数,如果不正确,直接结束程序不显示
                                        jb showret
                                        cmp ax,180
                                        ja showret
                                        
                                        
                                        mov bx,0b800h
                                        mov es,bx
                                        mov ah,0
                                        mov bl,30
                                        div bl
                                        mov bl,al
                                        mov bh,0
                                        add bx,bx
                                        mov bx,table[bx]
                                        
                                        mov si,160*12+40*2
                shows:                mov ah,[bx]
                                        cmp ah,0
                                        je showret
                                        mov es:[si],ah
                                        inc bx
                                        add si,2
                                        jmp short shows
                showret:        pop si
                                        pop es
                                        pop bx
                                        
                                        ret
code ends
end start
1152659530
[第1楼]   [ 回复时间:2023-08-13 22:27 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2023-07-25 10:13
放在这里,方便调试
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved