【汇编语言-王爽】第八章:数据处理的两个基本问题

知识点

(一)地址

  • 描述性符号:reg用来表示寄存器,sreg用来表示段寄存器。
  • 在8086CPU中,只有bx、si、di和bp这4个寄存器可以用在"[...]"中来进行内存单元的寻址。
  • bx的默认段地址为ds,[]中可以是bx+di+idata,或者bx+si+idata。
  • bp的默认段地址为ss,[]中可以是bp+di+idata,或者bp+si+idata。
  • 表达数据的位置:立即数(idata)、寄存器、段地址+偏移地址。
  • 常用的表达方式还包括:bx.10h[si]等。
  • 如何指明要处理的数据有多长:
    • 通过寄存器名,比如ax, al。
    • 用操作符byte ptr 或者word ptr指明内存单元的长度。
    • 其他方法:比如push指令只进行字操作。

(二)除法 div

  • 除数为8位的除法。被除数则为16位,默认在AX中存放。AL存储除法操作的商,AH存储除法操作的余数。
  • 除数为16位的除法。被除数则为32位,在DX和AX中存放,DX存放高16位,AX存放低16位。AX存储除法操作的商,DX存储除法操作的余数。

(三)其他

  • db定义字节型数据;dw定义字型数据;dd定义双字型数据。
  • dup是一个操作符,配合db、dw、dd等数据定义伪指令配合使用,用来进行数据的重复。例如:db 重复次数 dup (重复的字节型数据),即db 200 dup (0)。

实验7:寻址方式在结构化数据访问中的应用

代码

assume cs:codesg

data segment
        db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
        db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
        db '1993','1994','1995'

        dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
        dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000

        dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
        dw 11542,14430,15257,17800
data ends

table segment
        db 21 dup ('year summ ne ?? ')
table ends


codesg segment
  start:mov ax,data
        mov ds,ax
        mov bx,0
        mov si,84
        mov di,168

        mov ax,table
        mov ss,ax
        mov sp,0
        mov bp,0

        mov cx,21

      s:mov ax,[bx]
        mov dx,[bx+2]
        mov [bp].[0], ax
        mov [bp].[2], dx

        mov ax,[si]
        mov dx,[si+2]
        mov [bp].[5], ax
        mov [bp].[7], dx

        div word ptr [di]
        mov [bp].[13], ax

        mov ax,[di]
        mov [bp].[10], ax
 

        add bx,4h
        add si,4h
        add di,2h
        add bp,10h

        loop s

        mov ax,4c00h
        int 21h


codesg ends
end start
相关推荐
染指11104 小时前
45.第二阶段x86游戏实战2-hook监控实时抓取游戏lua
汇编·c++·windows·反游戏外挂·游戏逆向
ARM&开发(Haidong)7 小时前
ARM 汇编指令
汇编
CYRUS STUDIO16 小时前
Android 下内联汇编,Android Studio 汇编开发
android·汇编·arm开发·android studio·arm
我不是程序猿儿2 天前
【数据结构】汇编 、机器语言 高级语言 简析。
汇编·机器语言·高级语言
zhuqiyua2 天前
c文件的编译,汇编,基础知识
c语言·汇编·算法
CYRUS STUDIO3 天前
Android下的系统调用 (syscall),内联汇编syscall
android·linux·汇编·arm开发·arm·内联汇编
linhhanpy4 天前
自制操作系统(九、操作系统完整实现)
c语言·开发语言·汇编·c++·操作系统·自制操作系统
CYRUS STUDIO5 天前
ARM64汇编寻址、汇编指令、指令编码方式
android·汇编·arm开发·arm·arm64
xiaozhiwise6 天前
ARM base instruction -- ccmp (immediate)
汇编
zzj_2626109 天前
masm汇编字符串输出演示
汇编