bevin 发表于 2011-7-18 22:36:05

汇编课本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
不理解中间每一句的含义,望高手指点。。。。。

wangwum 发表于 2011-7-19 10:29:00

很简单,mov al,2 out 70h,al这两句是确定读写单元号。mov al,0 out 71h,al这两句是向指定单元写入数据。in al,71h这一句是把指定单元的数据读入al中。



bevin 发表于 2011-7-19 11:03:36

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?这个才是数据总线。。。能不能解释详细一点 = - ,我有点乱。。。

wangwum 发表于 2011-7-19 12:29:41

它就这样规定的,70h端口是写入要读写的单元号的,71h端口就是读写单元内容的。没有为什么?

bevin 发表于 2011-7-19 13:34:16

懂了,谢谢 。。。。。{:5_109:}

三田学校 发表于 2012-8-4 23:28:21

代码如下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]
查看完整版本: 汇编课本14章 检测点14.1问题