汇编语言(王爽)7章部分截图笔记

assume ds:data,cs:code

data segment
	db 'unIxabc'
	db 'foRKxY'
data ends
code segment
	start:
	mov ax,data
	mov ds,ax
	mov cx,7
	mov bx,0
	s:
	mov al,ds:[bx]
	or al,00100000b
	mov ds:[bx],al
	//上三行可以or byte ptr ds:[bx],00100000b代替
	inc bx
	loop s
	mov cx,6
	s1:
	mov al,ds:[bx]
	and al,11011111b
	mov ds:[bx],al
	//上三行可以and byte ptr ds:[bx],11011111b代替
	inc bx
	loop s1

	mov ax,4c00h
	int 21h
code ends
end start
/*将unIxabc大写,foRKxY小写。两个知识点,
1是大写al,11011111b小写or al,00100000b,
2是mov al,ds:[bx] 和 mov ds:[bx],al 可以操作一个字节,
自己一开始写or ds:[bx],00100000b编译时报错operand must have size.

汇编中的PTR有两种作用:
1.type PTR expression
强制把expression当作指定的type来使用
2. [var] PTR type
定义var为指向类型的指针
*/
[bx+idata]:
mov ax,[bx+200]
将长度为2个字节(子单元)的内容送入ax
(ax)=((ds)*16+(bx)+200)


等价写法
mov ax,[200+bx]
mov ax,200[bx]
mov ax,[bx].200
发布了407 篇原创文章 · 获赞 20 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43292547/article/details/104209116