日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

汇编中的标号概念

發布時間:2023/12/18 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 汇编中的标号概念 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

地址標號和數據標號

  • 地址標號 1 assume cs:code 2 code segment 3 a: db 1, 2, 3, 4, 5, 6, 7, 8 4 b: dw 0 5 start: mov si, offset a 6 mov bx, offset b 7 mov cx, 8 8 s: mov al, cs:[si] 9 add cs:[bx], al 10 inc si 11 loop s 12 13 mov ax, 4c00h 14 int 21h 15 code ends

    程序中codeabstarts都是標號,僅僅表示內存單元的地址。

    注意:對于":"的地址標號,只能在代碼段中使用,不能在其他段中使用。

  • 數據標號(在代碼段中使用數據標號) 1 assume cs:code, ds: data 2 code segment 3 a db 1, 2, 3, 4, 5, 6, 7, 8 4 b dw 0 5 start: 6 mov si, 0 7 mov cx, 8 8 s: mov al, a[si] 9 mov ah, 0 10 add b, ax 11 inc si 12 loop s 13 14 mov ax,4c00h 15 int 21h 16 code ends 17 18 end start

    程序中的ab是數據標號,不僅僅表示內存單元的地址,還表示了內存單元的長度。標號b代表了一個內存單元,地址為code:8長度為兩個字節。所以,如果mov al, b會報錯。

    數據標號在編譯期間被編譯器直接用地址替換了,并且進行了類型(字節操作or字操作)檢查。

    比如:?mov ax, b <==> mov ax,?cs:[8]

    mov b, 2 <==> mov word ptr?cs:[8], 2

    mov al, a[si] <==> mov al,cs:0[si]

    mov al, a[bx+si+3] <==> mov al,?cs:[0][bx+si+3]

  • 數據標號(在其他段中使用)

    ?

    1 assume cs:code, ds: data 2 data segment 3 a db 1, 2, 3, 4, 5, 6, 7, 8 4 b dw 0 5 data ends 6 7 code segment 8 start: 9 mov ax, data 10 mov ds, ax 11 12 mov si, 0 13 mov cx, 8 14 s: mov al, a[si] 15 mov ah, 0 16 add b, ax 17 inc si 18 loop s 19 20 mov ax,4c00h 21 int 21h 22 code ends 23 end start

    ?

    注意:在數據段中使用數據標號,需要:使用assume將數據段和ds進行關聯(這樣只是將默認所訪問單元的段地址都在ds中,而不是cs中);將ds指定為data段的段地址。

    現在:mov al, a[si] <==> mov al,?ds:[0][si]

  • ? ? ? ? ? ? mov b, ax <==> mov?ds:[8], ax

    ? ?

    ?直接定址表

  • 輔助知識:標號即是地址 1 data segment 2 a db 1,2,3,4,5,6,7,8 3 b dw 0 4 c dw a, b ;<==> c dw offset a, offset b 5 data ends 6 7 data segment 8 a db 1,2,3,4,5,6,7,8 9 b dw 0 10 c dd a, b ;<==> c dw offset a, seg a, offset b, seg b 11 data ends
  • 直接定制表

    (1).?入門題目:編寫子程序,以十六進制的形式在屏幕中間顯示給定的字節型數據。如11111111顯示為FF

    1 ; 用al傳送要顯示的數據 2 showbyte: jmp short show 3 table db '0123456789ABCDEF' ; 字符表 4 show: 5 push bx 6 push es 7 8 mov ah, al 9 shr ah, 1 10 shr ah, 1 11 shr ah, 1 12 shr ah, 1 ; ah-高4位 13 and al, 00001111b ; al-第4位 14 15 mov bl, ah 16 mov bh, 0 17 mov ah, table[bx] ; 高4位對應的字符 18 19 mov bx, 0b8000h 20 mov es, bx 21 mov es:[160*12+40*2], ah 22 23 mov bl, al 24 mov bh, 0 25 mov ah, table[bx] ; 低4位對應的字符 26 27 mov es:[160*12+40*2+2], al 28 29 push es 30 push bx 31 32 ret

    可以看出,直接定址表的好處:*算法更加清晰和簡介;加快運算速度;程序更易擴展。

    (2).?進階題目:showsin

    1 showsin: 2 jmp short show 3 ; 字符串偏移地址表 4 table dw ag0, ag30, ag60, ag90, ag120, ag150, ag180 5 ag0 db '0', 0 6 ag30 db '0.5', 0 7 ag60 db '0.866', 0 8 ag90 db '1', 0 9 ag120 db '0.866', 0 10 ag150 db '0.5', 0 11 ag180 db '0', 0 12 13 show: 14 push bx 15 push es 16 push si 17 18 mov bx, 0b800h 19 mov es, bx 20 21 ; 以下用角度值/30作為相對于table的偏移,取得對應的字符串的偏移地址 22 mov ah, 0 23 mov bl, 30 24 div bl 25 mov bl, al 26 mov bh, 0 27 add bx, bx 28 mov bx, table[bx] 29 30 ; 顯示字符串 31 mov si, 160*12+40*2 32 shows: mov ah, cs:[bx] 33 cmp ah, 0 34 je showret 35 mov es:[si], ah 36 inc bx 37 add si, 2 38 jmp short shows 39 40 showret: pop si 41 pop es 42 pop bx 43 44 ret

    (3).?編寫子程序:類似于dll的方式。<微軟的處理?方式>

    ?

    1 ; 入口參數說明: 2 ; (1).用ah寄存器傳遞功能號:0表示清屏, 1表示設置前景色,2表示設置背景色,3表示向上滾動一行 3 ; (2).對于2、3號功能,用al傳遞顏色值,(al)屬于{0,1,2,3,4,5,6,7} 4 5 ; ------------------------------- 類似于dll ------------------------------- 6 setscreen: jmp short set 7 table dw sub1, sub2, sub3, sub4, sub5 8 set: push bx 9 10 cmp ah, 4 11 ja sret 12 13 mov bl, ah 14 mov bh, 0 15 add bx, bx 16 17 call word ptr table[bx] ; 調用對應的功能子程序 18 19 sret: pop bx 20 ret 21 22 ; -------------------------------- 子程序 -------------------------------- 23 ; 功能子程序: 清屏 24 sub1: 25 push bx 26 push cx 27 push es 28 mov bx, 0b800h 29 mov es, bx 30 mov bx, 0 31 mov cx, 2000 32 sub1s: mov byte ptr es:[bx], ' ' 33 add bx, 2 34 loop sub1s 35 pop es 36 pop cx 37 pop bx 38 ret 39 40 ; 功能子程序: 設置前景色 41 sub2: 42 push bx 43 push cx 44 push es 45 mov bx, 0b800h 46 mov es, bx 47 mov bx, 0 48 mov cx, 2000 49 sub2s: and byte ptr es:[bx], 11111000b 50 or es:[bx], al 51 add bx, 2 52 loop sub2s 53 54 pop es 55 pop cx 56 pop bx 57 ret 58 59 ; 功能子程序: 設置背景色 60 sub3: 61 push bx 62 push cx 63 push es 64 65 mov cl, 4 66 shl al, cl 67 mov bx, 0b800h 68 mov es, bx 69 mov bx, 1 70 mov cx, 2000 71 sub3s: and byte ptr es:[bx], 10001111b 72 or es:[bx], al 73 add bx, 2 74 loop sub3s 75 76 push es 77 push cx 78 push bx 79 ret 80 81 ; 功能子程序: 向上滾動一行 82 sub4: 83 push cx 84 push si 85 push di 86 push es 87 push ds 88 89 mov si, 0b800h 90 mov es, si 91 mov ds, si 92 mov si, 160 93 mov di, 0 94 95 cld 96 mov cx, 24 97 98 sub4s: push cx 99 mov cx, 160 100 rep movsb 101 pop cx 102 loop sub4s 103 104 ; 清空最后一行 105 mov si, 0 106 mov cx, 80 107 sub4s1: mov byte ptr [160*24+si], ' ' 108 add si, 2 109 loop sub4s1 110 111 pop ds 112 pop es 113 pop di 114 pop si 115 pop cx 116 ret 117 118 ; 功能子程序: 向下滾動一行 119 sub5: 120 mov si, 0b800h 121 mov es, si 122 mov ds, si 123 mov si, 0 124 mov di, 160 125 126 cld 127 mov cx, 24 128 129 sub5s: push cx 130 mov cx, 160 131 rep movsb 132 pop cx 133 loop sub5s 134 135 ; 清空第一行 136 mov si, 0 137 mov cx, 80 138 sub5s1: mov byte ptr [si], ' ' 139 add si, 2 140 loop sub5s1
  • 總結

    以上是生活随笔為你收集整理的汇编中的标号概念的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 天天看夜夜爽 | av在线网站观看 | 免费无码一区二区三区 | 青青操影院 | 欧美一二区视频 | 17c国产精品一区二区 | 台湾佬成人中文网222vvv | 国产一级18片视频 | 一区二区在线不卡 | 久久亚洲av午夜福利精品一区 | 台湾佬av| 国产麻豆a毛片 | 又大又粗欧美黑人aaaaa片 | 久久99精品国产91久久来源 | 国产少妇一区二区 | 色综合色综合色综合 | 日本h漫在线观看 | 五月婷av| 四虎精品一区二区 | 一级片亚洲 | 在线视频欧美亚洲 | 在线观看一区 | 国产成人精品一区二区三区在线观看 | 国产在线中文字幕 | 办公室摸腿吻胸激情视频 | 99免费国产| 日韩久久在线 | 亚洲美女毛片 | 日韩av免费一区 | 亚洲男人天堂 | 午夜性色福利视频 | 我们好看的2018视频在线观看 | 午夜视频一区二区 | 日本一区不卡在线观看 | 国产自产在线视频 | 久久日韩精品 | 中文字幕丝袜诱惑 | 亚洲精品影院在线 | 国产黄视频网站 | 99精品视频在线观看免费 | 国产一区二区三区四区五区六区 | 精品久久久视频 | 日韩av中文在线观看 | 午夜久草 | 动漫一区二区 | 调教驯服丰满美艳麻麻在线视频 | 男人的天堂成人 | 午夜寂寞自拍 | 欧美性猛交久久久久 | 樱花草涩涩www在线播放 | 永久免费在线观看视频 | 亚洲欧美国产精品 | 欧洲成人午夜精品无码区久久 | 波多野结衣视频网址 | 伊人导航 | 精品在线99| 一个色综合久久 | 欧美成人高清在线 | 久久国产小视频 | 我想看一级黄色片 | 办公室大战高跟丝袜秘书经理ol | 天天综合在线视频 | 人妻少妇无码精品视频区 | 亚洲第一成人网站 | 色综合久久av | 一起草av在线 | 性色视频在线观看 | 伦理片中文字幕 | 超碰人人在线 | 奇米狠狠777| 91视频在线观看免费 | 亚洲视频中文字幕在线观看 | 国产日韩在线一区 | 亚洲最黄视频 | 五月婷婷激情综合 | 亚洲特黄一级片 | 午夜写真片福利电影网 | 女上男下动态图 | 男女av | 国产网站一区 | 国产在线h| 九九日韩 | 欧色丰满女同hd | 国产精品一区电影 | 熟妇人妻无乱码中文字幕真矢织江 | 国产男女在线 | av大全免费观看 | 国产一级片免费观看 | 波多野结衣电车 | 超碰在线最新 | 国产精品高潮呻吟 | 国产无遮挡18禁无码网站不卡 | 十八禁一区二区三区 | 男人女人拔萝卜视频 | 猎艳山村丰满少妇 | 91人妻一区二区三区蜜臀 | 午夜剧场福利社 | www.四虎在线观看 | 久久精品资源 |