数据处理的两个基本问题
计算机是进行数据处理,运算的机器,所以存在两个问题:
这两个问题,必须在机器指令中给出说明(有时候是明确的,有时候是隐式的),否者计算器就无法工作。
bx,si,di和bp总结:
机器指令处理的数据在什么地方数据处理大致可分为三类:读取,写入,运算 汇编语言中数据位置的表达
寻址方式定位内存单元的方法,即称为寻址方式 指令要处理的数据有多长前面将到分为隐式给出和显式给出,例如通过寄存器和push,pop等方法就是隐式给出。 mov word ptr ds:[0],1 mov byte ptr ds:[0],1 inc ... add ... div指令div指令为除法指令
伪指令dd有用到过db和dw,例如: db 1 ;占1个字节 dw 1 ;占1个word(2个字节) dd用来定义dword(double word,双子)。 dupdup是一个用于定义数据的操作符,由编译器识别。和db,dw,dd配合使用,用来进行数据的重复定义。 实验七答案 assume cs:code,ds:data,es:table 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‘ ; 21年, 4*21=84个字节 dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514 dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000 ; 21年每年总收入,84字节 dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8826 dw 11542,14430,15247,17800 ; 21年每年雇佣人数, 42字节 data ends table segment db 21 dup (‘year summ ne ?? ‘) table ends stack segment dw 16 dup(0) stack ends code segment start: mov ax,data mov ds,ax mov ax,table mov es,ax mov bx,0 mov si,0 mov di,0 mov cx,21 s0: mov ax,0[bx].[0] mov es:[si].[0],ax mov ax,0[bx][2] mov es:[si].[2],84[bx].[0] mov es:[si].[5],84[bx][2] mov es:[si].[7],168[di].[0] mov es:[si].[10],es:[si].[5] ; 计算人均收入 mov dx,es:[si].[7] div word ptr es:[si].[10] mov es:[si].[13],ax add bx,4 add si,10H add di,2 loop s0 mov ax,4c00H int 21H code ends end start table段的dup实际定义了21*16个字节,空格也在对应的位置填上了。
来自为知笔记(Wiz)
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |