汇编课本14章 检测点14.1问题
本帖最后由 bevin 于 2011-7-19 13:34 编辑编程,向cmos RAM的2号单元写入0.
答案是这样写的:
assume cs:code
code segment
start:
mov al,2
out 70h,al
mov al,0
out 71h,al
in al,71h ;执行完此条指令后al中的内容为0
mov ax,4c00h
int 21h
code ends
end start
不理解中间每一句的含义,望高手指点。。。。。
很简单,mov al,2 out 70h,al这两句是确定读写单元号。mov al,0 out 71h,al这两句是向指定单元写入数据。in al,71h这一句是把指定单元的数据读入al中。
wangwum 发表于 2011-7-19 10:29 static/image/common/back.gif
很简单,mov al,2 out 70h,al这两句是确定读写单元号。mov al,0 out 71h,al这两句是向指定单元写入数据。in ...
第二句out 70h,al 是不是应该是71h?这个才是数据总线。。。能不能解释详细一点 = - ,我有点乱。。。 它就这样规定的,70h端口是写入要读写的单元号的,71h端口就是读写单元内容的。没有为什么? 懂了,谢谢 。。。。。{:5_109:} 代码如下assume cs:code
code segment
start:
mov al,8
out 70h,al
in al,71h
mov ah,al
mov cl,4
shr ah,cl
and al,00001111b
add ah,30h
add al,30h
mov bx,0b800h
mov es,bx
mov byte ptr es:,ah
mov byte ptr es:1,01110000b
mov byte ptr es:2,al
mov byte ptr es:3,01110000b
mov ax,4c00h
int 21h
code ends
end start
页:
[1]